I would like to ask questions very similar to this Neurostars post.
When one has access to a server with large number of cpus (and RAM) and would like to optimize workflows which include nodes themselves parallelizable with openmp (freesurfer, etc.), questions are:
MultiProcplugin parameters other than
n_procsshould be considered for optimal execution?
- in particular how to set properly the
MultiProcplugin parameters related to setting the number of openmp threads for nodes using this feature in the worflow (freesurfer, afni, etc.)? Can one skip all node level configuration (e.g.
openmpvariable for Freesurfer
ReconAllinterface) and set everything via the
MultiProcplugin? If not how should they be combined?
- is there any suggestion between using a subject iterable within a worfklow VS running the workflow always on a single subject but parallelizing at the level of the server/scheduler
- is it possible to have an example on how to set all these parameters?
- is there anything else very important to know when trying to optimize NiPype workflow resources?
- (optional) once the optimal parameters have been set, how (very roughly) does the optimization work when a workflow is iterated on subjects with nodes using openmp parallelization?
Any help would be great,