Can Slicer utilise multiple cores on linux?

Hi, I have a 40 GB NRRD that I need to work with. Currently, when I ask Slicer to load this volume it takes forever (over 15 minutes) and fails from time to time. I see that Slicer utilises only 1 out of the 14 cores and only 1.5 GB out of the 88 GBs of RAM that are available in the machine. Is there any way I can speed up load load time by specifying to Slicer to use more that one core?

Hi -

For a file that size it’s probably best not to compress it. You can save the file uncompressed using the options checkbox in the save dialog.

Here’s a way to set compression off for all volume nodes if you want that:

https://www.slicer.org/wiki/Documentation/Nightly/ScriptRepository#Change_file_type_for_saving_for_all_volumes_.28with_already_existing_storage_nodes.29

There’s more information in this thread:

We typically suggest suggest 4-8 times more memory than your dataset. If this is 40GB uncompressed dataset, you might be able to load it and get it displayed in SLicer but that’s about as much as you can do. Segmentation, visualization etc is unlikely to work.

As @pieper said, make sure you are not compressing the data during save, and also use SSD which usually speeds up the sequential IO quite good.

Thanks @muratmaga and @pieper I am using uncompressed NRRD that was saved from an industrial microCT machine and the machine has an SSD.
Basically my task in Slicer is to identify intensities of different parts of the image and to crop the volume. I am not performing any segmentation tasks though I’ve tried and it also works okay. It’s just the IO time that is annoying.
Anyway, thanks a lot for your input

I routinely work with datasets that are 2-16GB range. Provided that there is sufficient memory to load the data into Slicer, when IO takes that long (several minutes) the usual culprit is compression/decompression of the data at the load/save step, which is single-threaded.

Out of curiosity, I made a rough test.

Reading a sequence of 2200 PNG images that resulted in a 10GB volume took 3’ 25" on a 32GB laptop with a nvme drive (Using ImageStack from @pieper). Saving same volume as nrrd without compression took about 4 seconds. Flushing the cache and reloading the uncompressed 10GB NRRD into a fresh instance of Slicer took 26 seconds.