I'm profiling a well threaded rendering application (cpu raytracer). I'm trying to find out why some of the threads do not utilize all cpus/hyper threads all the time at 100%. In the platform view I can see that the cpu time of some threads is not at 100%, but as far as I can see the threads are running. I've attached a screenshot.
Can someone explain what is the meaning of 'cpu time' and 'running' in this graph? Also what does it mean to be 'running' but 'cpu time' to be less than 100%? Waiting for memory? Executing pause/halt/noop instructions?
I'm running on CentOS 6 Linux, V-Tune 2017 update 4, i7 5820k @ 3.3ghz (no turbo, no speedstep). I've seen similar effects when running on Windows 10, too. At the moment I'm profiling only with basic hotspots collecting mode.