Attachment | Size |
---|---|
MWE.R [6] | 3.9 KB |
We are currently trying to benchmark our SEM software against OpenMx for a SEM with unique definition variables per person.
With ML estimation, because there is a unique model-implied covariance matrix per person, which has to be inverted per person, I assumed that parallelizing the objective function should improve performance drastically. However, changing the number of threads does not change the performance - so I assume I probably did something wrong. I followed this wiki pages instructions:
https://openmx.ssri.psu.edu/wiki/speed-parallel-running-and-efficiency
omxDetectCores() # returns 8 getOption('mxOptions')$"Number of Threads" # returns 2 mxOption(model= yourModel, key="Number of Threads", value= (omxDetectCores() - 1)) #does not change time to fit the model, regardless of the value I pass
A minimal working example is attached.
Also, the same wiki page says
Streamlining estimation
If you have a large complex model, it may take hours to run by default. You can often speed up your model by turning off computation of elements that are only needed on a final evaluation, like the Hessian and standard errors."
How can I do that?
We are also thankfull for any further suggestions on how to improve the performance.
Best,
Maximilian