Summary of what happened:
Dear all,
I am using Windows10 docker with WSL2 backend to run fmriprep. I firstly run all non-freesurfer steps with fmriprep and it worked all fine. I then separatly run freesurfer and provided it to fmriprep to compelete the whole pipline. However, the program threw errors to all subjects when each of them running the
Node Name: _parcstats0
Node Name: _parcstats1
Command used (and if a helper script was used, a link to the helper script or the command generated):
docker run -ti --rm \
-v /mnt/g/BIDS:/data:ro \
-v /mnt/g/BIDS/derivatives/fmriprep:/out \
-v /mnt/g/workdir:/work \
-v /mnt/d/Toolbox/freesurfer7.2.0/license.txt:/opt/freesurfer/license.txt \
nipreps/fmriprep:latest \
/data /out participant \
-w /work \
--participant-label `cat ./docker_run_list.txt` \
Version:
Docker version: 4.17.1 (101757)
Fmriprep version: 23.0.1
Environment (Docker, Singularity, custom installation):
Windows10, Docker, WSL2
Data formatted according to a validatable standard? Please provide the output of the validator:
Yes
Relevant log outputs (up to 20 lines):
Here below is the error log of the command:
Traceback (most recent call last):
File "/opt/conda/lib/python3.9/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
result["result"] = node.run(updatehash=updatehash)
File "/opt/conda/lib/python3.9/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
result = self._run_interface(execute=True)
File "/opt/conda/lib/python3.9/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
return self._run_command(execute)
File "/opt/conda/lib/python3.9/site-packages/nipype/pipeline/engine/nodes.py", line 771, in _run_command
raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node _parcstats0.
Cmdline:
recon-all -autorecon-hemi lh -nohyporelabel -lh-only -openmp 8 -subjid sub-HC001 -sd /out/sourcedata/freesurfer -notessellate -nosmooth1 -noinflate1 -noqsphere -nofix -nowhite -nosmooth2 -noinflate2 -nocurvHK -nocurvstats -nosphere -nosurfreg -nojacobian_white -noavgcurv -nocortparc -nopial -nocortparc2 -nocortparc3 -nopctsurfcon
Stdout:
Stderr:
Traceback:
Traceback (most recent call last):
File "/opt/conda/lib/python3.9/site-packages/nipype/interfaces/base/core.py", line 398, in run
runtime = self._run_interface(runtime)
File "/opt/conda/lib/python3.9/site-packages/nipype/interfaces/base/core.py", line 765, in _run_interface
runtime = run_command(
File "/opt/conda/lib/python3.9/site-packages/nipype/utils/subprocess.py", line 107, in run_command
proc = Popen(
File "/opt/conda/lib/python3.9/subprocess.py", line 951, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/opt/conda/lib/python3.9/subprocess.py", line 1754, in _execute_child
self.pid = _posixsubprocess.fork_exec(
BlockingIOError: [Errno 11] Resource temporarily unavailable
I checked previous posts and I think it may be an insufficient memory error. Actually there was a warning say memory may be not enough for some commands. If so, how can I approximately estimate how many CPUs are allowed to accomodate my computer memory size?