How to optimize parallelization of NiPype workflows including openmp nodes?


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:

  • what MultiProc plugin parameters other than n_procs should be considered for optimal execution?
  • in particular how to set properly the MultiProc plugin 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. openmp variable for Freesurfer ReconAll interface) and set everything via the MultiProc plugin? 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,


did you get the answer, Michael?