muscbridge / PyDesigner

A hands-free DTI, DKI, FBI and FBWM preprocessing pipeline. Information on algorithms and preprocessing steps are available at https://www.biorxiv.org/content/10.1101/2021.10.20.465189v1 A video tutorial on PyDesigner and its usage is now available at https://www.youtube.com/watch?v=mChQFuQqX3k
https://pydesigner.readthedocs.io/en/latest/
Other
23 stars 7 forks source link

eddy_cpu #302

Open jdias001 opened 1 year ago

jdias001 commented 1 year ago

I'm attempting to run Neurodock on my non-CUDA machine. Using the standard processing pipeline, the system will run up to eddy correction, at which point it attempts but fails to run eddy_CUDU and then attempts to run eddy_cpu. At which point it is simply suck there. No error, no output, even after hours have passed. It will simply stay there until I break the operation.

last few lines of code

Command: mrconvert dwi.mif eddy_in.nii -strides -1,+2,+3,+4 -export_grad_fsl bvecs bvals -export_pe_eddy eddy_config.txt eddy_indices.txt Command: eddy_cuda10.2 --imain=eddy_in.nii --mask=eddy_mask.nii --acqp=eddy_config.txt --index=eddy_indices.txt --bvecs=bvecs --bvals=bvals --repol --data_is_shelled --out=dwi_post_eddy --verbose dwifslpreproc: CUDA version of 'eddy' was not successful; attempting OpenMP version Command: eddy_cpu --imain=eddy_in.nii --mask=eddy_mask.nii --acqp=eddy_config.txt --index=eddy_indices.txt --bvecs=bvecs --bvals=bvals --repol --data_is_shelled --out=dwi_post_eddy --verbose

TheJaeger commented 1 year ago

The OpenMP version of eddy current correction takes incredibly long. It can take up to 4 hours on a 64 direction dataset (3 mm isotropic, 10 b0 volumes, 64 b1000 volumes, and 64 62000 volumes) on an 8 core/16 threads machine. It's not stuck, but is working slowly. You can somewhat speed it up by assigning more CPU cores to the Docker image i.e. allocating all available cores to Docker. This is done within Docker Desktop settings https://pydesigner.readthedocs.io/en/latest/docker/docker_configuration.html#

However, running the GPU version will speed up the process down to 15 minutes. I hope this helps. You can also run pydesigner with the -v, --verbose flag to print to console every step of the way so you see the process through eddy_cpu.

-Sid