3D Slicer not responding but still using maximum CPU

I am trying to use vmtk centerline extraction on a model of approximately ~250mb size. [Even though the file size is not too big, the model is definitely intricate with a lot of branches and would understandably require time for computation]

Often the application will freeze and become unresponsive but according to the Task Manager, it is still maxing out the CPU and also steadily increasing the used disk space.
Does this mean that the computation is ongoing even though the application is not responding?

Windows 10
Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz Processor

It is expected that when the application uses maximum CPU it becomes unresponsive. It means it is still working on the task. It may mean that the application hangs, but then it would stay the same way indefinitely. On a crash the application closes. Since you posted this 8 hours ago, probably you can tell if it finished successfully or not. Can you please let us know?

The computation ended successfully after I left it running overnight! [This is when the application was maxing out the CPU]

Side question: if the application goes into the Not Responding state and is also NOT using maximum CPU, that should probably be a sign to restart it, right? Or can it still be running the computation?


There is no easy way you can tell what is happening in that case. Hangs are much more rare than crashes, so if it uses maximum CPU, and thus does not respond, you can almost safely assume it is doing the computation.

Usually a processing algorithm only uses one CPU core (unless it is designed to be an algorithm that can be distributed to run on multiple threads in parallel). Therefore if the algorithm runs at full speed your total CPU usage does not go above 1 / number of CPU cores, which is usually about 10-20%.

Note that most often centerline extraction only takes a couple of seconds. Have you used “Extract centerline” module in 3D Slicer or you just ran VMTK filters in Python? If you just run the filter manually make sure you preprocess the model properly (e.g., smooth and decimate - it does not make sense to run centerline extraction on the raw model extracted from images, because they have unnecessarily large number of points).

Hi, I always get “not responding” while doing “growing from seed”, the CPU usage is only 10–18%. Is there anyway to optimize the CPU usage and not get the app into “not responding”?

I use intel i7 13th gen with 32 gb of ram.

“Not responding” when you are trying to operate the software while it is busy is normal. It means that you have to wait before you can do something.

“CPU usage is only 10–18%” is normal, too. As I explained above, most algorithms cannot be run on multiple CPU cores in parallel, because you need to perform steps of the algorithm in order (you can only start the next step if the previous is finished). This means that if you look at the overall CPU usage of your computer, you’ll see about 10% usage, because most of your CPU cores are idle.

While “Grow from seeds” algorithm cannot run on multiple threads in parallel, and initialization may take 10-20 seconds, the algorithm is very efficient when you are adding more seeds. Then update should take just a seconds. If you enable 3D preview and you have a large, complex segmentation then the 3D surface generation may take significant amount of time, so if you need faster updates then you may disable that.