Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

optimal run args for running on HPC? #387

Closed
mgxd opened this issue Feb 15, 2017 · 5 comments
Closed

optimal run args for running on HPC? #387

mgxd opened this issue Feb 15, 2017 · 5 comments

Comments

@mgxd
Copy link
Contributor

mgxd commented Feb 15, 2017

This is my current command:

mriqc --use-plugin plugin.yml --n_procs 8 --mem_gb 30 [mandatories]
plugin.yml
{plugin: 'SLURM', plugin_args: {'sbatch_args: --time=1-00:00:00 --mem=30GB -c 4'}}

I have to wait around 3 hours before the workflows actually start to run, and even then seems to take longer than expected. Any suggestions for improving this?

*I'm running on Prisma data with multi-slice acquisition, functional are about 300 vols, 2-4 runs each

@chrisgorgo
Copy link
Collaborator

chrisgorgo commented Feb 15, 2017 via email

@mgxd
Copy link
Contributor Author

mgxd commented Feb 16, 2017 via email

@chrisgorgo
Copy link
Collaborator

chrisgorgo commented Feb 16, 2017 via email

@oesteban oesteban added this to the MRIQC 1.0.0 milestone Mar 10, 2017
@oesteban oesteban modified the milestones: MRIQC 1.0.0, MRIQC 1.0.1 Mar 22, 2017
oesteban added a commit to oesteban/mriqc that referenced this issue Mar 23, 2017
A step towards some recommendations for nipreps#387 and nipreps#388
@oesteban
Copy link
Member

oesteban commented Mar 24, 2017

Hi @mgxd, I was coming back to this and realized that you are using the SLURM plugin. I don't really know the details on how the plugin is built in nipype, but that long set-up time seems to me very related to the plugin choice.

When we run mriqc on our HPC these are our settings:

  • One subject per compute node,
  • with one process per subject using the MultiProc
  • with n_procs depending on the memory maximum - so for your 30GB I would probably go with n_procs<=12 or so.

For parallelizing these many process you could use a job-array. If you are not allowed to use job arrays, then a solution like launcher may do.

I am about to update the documentation with some profiling we've been doing on mriqc.

Does this reply your question?

@mgxd
Copy link
Contributor Author

mgxd commented Mar 24, 2017

@oesteban thanks for the info, I'm looking forward to the documentation!

@mgxd mgxd closed this as completed Mar 24, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants