At developers meeting on 8/5 we discussed the following:
- Changes in the front and back end to the make RAM Objectives work with ML and FIML. The proposed changes will have RAM populate things like the covariance matrix and latent variables. These changes will make it easier to add LISREL Objective Functions to OpenMx.
- We discussed a parallel strategy for FIML:
- The group believed it was the right strategy to duplicate all matrices and algebras n times, where n is the degree of parallelism. We want to boil communication down among parallel processes to only free parameters and likelihood.
- In terms of implementation we are concerned with guaranteeing correctness first and then focus on load balancing.
- The structure of the way errors are reported may need to be changed. We need to be able to throw up to n errors, where n is the degree of parallelism. Currently the error structure would only report the first error. Implementing an error structure where all errors are collected and then reported en masse would prevent this.
- Computing the closed form of derivatives were also discussed to improve performance. Currently, Mike Hunter is exploring how to compute these for for LISREL models and use a subset of these computations for RAM models.
- Several problems have been identified that return answers within classic Mx that return NaNs in OpenMx. This is believed to be due to the use of penalty functions in classic Mx that are not employed in OpenMx. The possibility of adding a user option that could turn on penalty functions in OpenMx was discussed and will be explored.
- The 'connect' slot in mxPath which replaces the 'all' slot has been implemented and is checked into the OpenMx trunk. Any bugs or issues should be reported on the wiki and will be addressed and/or explained.
- An implementation of PPML is being explored for FIML. Exploring moving FIML to the back end of OpenMx was also discussed.