Blender freezes, but no resources are maxed out I have a complex object in Blender (about 336,000 vertices) to which I'm trying to apply modifiers. A smooth modifier is pretty quick, but a laplacian smooth takes a really long time. I have to wait about 5 minutes every time I change one of the settings. If I click any button during this wait, windows says 'blender (not responding)' and the screen gets grayed out, but after some time it actually manages to process my change. 

I would understand this slowing if blender would say, overfill my RAM, or max out my GPU, but this is not happening. I cannot find where the bottleneck is. 

I'm on Windows 7 Professional 64bit with intel core i7 3.5GHz, 32Gb of RAM, and I use a Nvidia Geforce GTX 750 Ti. Whenever Blender is stuck, I see no changes in CPU usage, GPU load (as monitored by Techpowerup GPU-Z 2.7.0), GPU memory used, GPU temperature. Blender's memory usage goes up slightly, by less than a Gb, but it's nowhere near maxing out. 

If I were to upgrade my PC to make this process faster, which part should I upgrade?
Processes like render can be separated in different parts, as you can see as a tiles. But some processes (like the smooth) can't be divided into threads to use all the processor cores. In this case one thread use only 1 CPU core: 1/4 or 1/8 (depends of how many cores in your CPU) of all CPU power. If so, CPU monitor will show that only 25% or 12% of CPU is used.