Turn off multi-threading for ExploreDTI functions

9 views
Skip to first unread message

Joost

unread,
May 30, 2017, 7:11:07 AM5/30/17
to ExploreDTI
Dear ExploreDTI experts,

I am working on a DWI processing pipeline and on an eight-core system, I want to run several ExploreDTI functions, such as "E_DTI_SMECEPI_Main" and "E_DTI_Network_analysis_exe", without making use of multi-threading, i.e. run them on a single CPU only.

So far, I have tried the following:
- starting Matlab using the -singleCompThread argument;
- turning off the matlabpool in Matlab or setting matlabpool to 1;
- force the number of threads to be used by Matlab to 1 by using $export OMP_NUM_THREADS=1 before starting Matlab.

Normally, this should do the trick, but ExploreDTI seems to overrule something as elastix_L_64, which is called by E_DTI_SMECEPI_Main and E_DTI_Network_analysis_exe, still uses up to 600 tot 800% of my processing power.

Has anyone an idea how to force ExploreDTI and elastix to run single-threaded? Thanks in advance!

I am using ExploreDTI 4.8.6 in combination with Matlab R2012a and have 64-bit Scientific Linux installed.

Best regards,

Joost


Samuel St-Jean

unread,
May 30, 2017, 8:10:24 AM5/30/17
to ExploreDTI
That's because elastix/transformix is called as an external compiled program completely outside of edti, so you can't control them from matlab since the mat file just collects arguments and launches the whole thing.

Nevertheless, it is built using itk, so you can probably control that by using the environment variable which controls the number of cores used by itk, just like

export ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS=1

That should probably do it (crossing fingers on it at least).

Joost

unread,
May 30, 2017, 8:50:54 AM5/30/17
to ExploreDTI
Thanks Samuel, that did the trick!

Op dinsdag 30 mei 2017 14:10:24 UTC+2 schreef Samuel St-Jean:
Reply all
Reply to author
Forward
0 new messages