parallel, scheduler friendly optimize and postprocess methods
mpbl opened this issue · 2 comments
seisflows/seisflows/optimize/lib/LBFGS.py
is at the package top level.
For case needing more memory, it will be useful to have a version that launches mpi jobs through a queuing system.
This is an important issue that needs to be addressed before we can start iterations on titan. In addition to the LBFGS library, most of the methods within 'optimize' and 'postprocess' would need to be parallelized as well.
@chukren (Youyi) had a good point about this in relation our efforts at Oakridge.
Being familiar with Oakridge, he thought that the current nonlinear optimization methods could run on one of rhea's compute nodes. Even for high resolution global inversion, 128 GB available on these nodes might be sufficient.
Short of running a whole SeisFlows inversion on titan, just using the SeisFlows nonlinear optimization methods to compute L-BFGS search directions would be a major step forward, since SeisFlows routines can actually be tested with standard problems (e.g. Rosenbrock). This is a really important feature, given the importance of having a well-tested, numerically robust implementation. (To my knowledge, none of the other inversion workflows currently being used with SPECFEM have this feature.)