OpenMx in the Cloud

3 replies [Last post]
cuttance's picture
Offline
Joined: 01/20/2014

I’m looking to integrate MSEM (one of: OpenMx, MPlus, LISREL, etc) into an application I am developing for schools on a .NET Microsoft Azure Cloud platform — multiple schools will access the application simultaneously, and the application will call the MSEM modelling unit to estimate a specific model and return the estimates to a database for benchmarking purposes.

Would I need to run OpenMx inside a VM, or is there a server version? Can multiple instances of OpenMx run inside the same VM? or Would we need to run multiple VMs, each for an instant of OpenMx?

How does OpenMx utilise multiple-cores — can it can run multiple models (jobs) simultaneously? or does it simply run parallel processing for a single job via the multiple-cores?

The Azure Cloud expands elastically to meet requirements — while serial processing (pseudo batch mode) would work OK, processing multiple jobs in parallel would be preferred.

What type of licensing would apply to the above application.

neale's picture
Offline
Joined: 07/31/2009
MSEM

Hi

Thank you for your interest in OpenMx! To answer your questions:

1. OpenMx can be run interactively or in batch mode in R. There are versions for Windows, Linux and OSX, and this applies to all of them.
2. There are several variants of multicore utilization. At the most fine-grained, raw data likelihoods can be calculated by splitting the data across multiple cores, and aggregating the log-likelihoods when all threads are complete. Next would be by declaring mxModels (say different data groups or models) as independent, so they can be evaluated in parallel. Finally, other parallelizations via the R parallel or snowfall libraries could be used to wrap around various model-fitting components, including fitting multiple models simultaneously.
3. Licensing is open source, GNU General Public License from the Free Software Foundation. However, if you (or anyone) would like to make a financial contribution to the continued development of OpenMx, we'd certainly appreciate it!

cuttance's picture
Offline
Joined: 01/20/2014
Parallel Processing

I see from the notes in the features page that OpenMx will now automatically run jobs in parallel — either by slicing an individual job into parallel pieces, or by running multiple different jobs in parallel — is that correct?

Do I need to invoke anything to implement this feature, eg. specify a parameter for it, or does the application automatically detect the number of processors available and adapt to what it finds?

Cheers
Peter

neale's picture
Offline
Joined: 07/31/2009
Yes, correct, see this thread for how-to

For raw data (continuous or ordinal) the finest grain parallel processing occurs by chopping the dataset into different chunks, and computing the log-likelihoods of the data in each chunk in parallel. This works well on a SMP type architecture.

http://openmx.psyc.virginia.edu/wiki/speed-parallel-running-and-efficiency