Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am using Windows 7 Professional, Intel i7 CPU. I know the i7 has Hyper-Threading and I assume this is the reason.

While running a single-threaded program, I saw that it only uses 12-13% CPU in Task Manager, which is 1/8 of the CPU-time on a quad-core CPU. Is it a problem in the Task Manager because of HT, or does it really use only half a core?

share|improve this question
    
It's actually using much more than half a core. The operating system just has no way to determine that. It assumes that since one virtual core is idle, only half the core is being used. But that's not true. A single virtual core can use all the execution resources on the physical core if it's able to. Otherwise, hyper-threading would double the performance of a CPU and it only adds 10-15%. –  David Schwartz May 4 '12 at 1:44
    
Well, it's just that I assumed the OS would figure out proper CPU usage, since it has support for HT... –  K.Steff May 4 '12 at 7:37
    
The problem is that there's no baseline. Even when a core is processing instructions as quickly as it can, some execution units aren't used. (For example, if you're doing integer math only, the floating point units are idle.) Utilization at that level isn't well-defined. All the OS knows is that it can run eight threads and is running one, thus 12%. HT-aware just means it knows which cores to schedule threads on and when physical cores are idle. And if it actually measures utilization of execution units, you'd never get anywhere near 100% no matter what load you were running. –  David Schwartz May 4 '12 at 8:02

1 Answer 1

up vote 2 down vote accepted

If HyperThreading is enabled, you'll see eight separate CPU graphs in Task Manager. So then 100% of one of these virtual cores will be 12-13%. (One reason I prefer the way Mac/Linux do it: each core is 100%, so an eight-core -- real or virtual -- machine can have up to 800% CPU usage.)

It's just the way the usage is reported. Disabling HyperThreading in the BIOS/EFI might get you slightly better performance.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.