Optimal settings for fmriPrep Docker, with ica aroma, 16GB RAM


What settings might be the fastest, but yet successful, on a new Mac with 16GB RAM, fmriprep through Docker, with ica-aroma?

I had allocated 12 GB RAM in Docker, and 8 CPUs. Total computer CPUs is 16 and 16 GB RAM. This worked fine for fmriprep until I tried adding --use-aroma. Ran into memory issues. Was told normally would require 23-24GB RAM allocated.

I was advised to use --n-cpus 1, it should get right to aroma, and then I can kill the process after aroma and rerun without --n-cpus 1. I have been having issues with this idea taking a very long time to get to aroma in the first place. So, if possible, I would like to optimize this for speed but still be successful with memory.

Options I have found so far include:
(1) Changing number of CPUs, RAM, and swap on docker. But limit of RAM is 16GB total on the whole machine.
(2) And the following potential inputs for fmriprep (but I do not know if these would help for aroma and if so, what settings to use for them):

 --nprocs, --nthreads, --n_cpus, --n-cpus
maximum number of threads across all processes

maximum number of threads per-process

--mem, --mem_mb, --mem-mb
upper bound memory limit for fMRIPrep processes

attempt to reduce memory usage (will increase disk usage in working directory)

Any suggestions here on optimal settings for fmriprep through docker for aroma with a total of 16GB RAM on the whole machine?


Not a direct answer, but have you considered using a could-based processing system, like brainlife.io? Besides that, you try: (1) either disable freesurfer or run freesurfer ahead of time (2) only doing a single functional fun at a time using the bids filter file input.