Closed
Description
Summary
We need to give some love to MultiProc and its resource profiler.
Actual behavior
I see two problems in the current implementation of the resource profiler.
-
The resource calculation only happens to interfaces derived from
CommandLine
(https://github.com/nipy/nipype/blob/master/nipype/interfaces/base.py#L1543-L1544). -
Even for those, when I get to the runtime log I set for the callback, I always see the post-callback entries like:
callback:DEBUG {"name": "GenerateReport", "id": "GenerateReport.a0", "estimated_memory_gb": 1, "num_threads": 1, "finish": "2017-05-05 17:23:41.020064", "runtime_threads": "Unknown", "runtime_memory_gb": "Unknown"}
So both runtime_threads
and runtime_memory_gb
are "Unknown"
. This could be a consequence of the containerized execution.
Expected behavior
These should be measurements, at least for CommandLine
-derived interfaces.
How to replicate the behavior
docker run -i -v /data/bids-dir:/data:ro -v $SCRATCH:/scratch -w /scratch poldracklab/mriqc:latest /data/ out/ participant --testing --verbose-reports --profile --n_procs 8 --ants-nthreads 4 --ica