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've got an Intel Core i7 920 in an Asus P6T, for which my OS reports having 8 cores. Core i7 is Quad, so presumably this is due to Hyperthreading being enabled in BIOS. I could imagine that Intel's HT might allow one core to max out when the other "half" is idle, but then wouldn't the OS have to first use the even/odd numbered cores?

My question is simple - given that most software can take advantage of only 1 core, is having 8 pseudo-cores, rather than only 4 real cores, actually hurting performance?

Please enlighten me, if you can.

BTW, it's running CentOS 5.3, if that matters.

share|improve this question
    
Incidentally, one advantage of allowing the hyper-threading is the flexibility in the number of cores provided to any virtual machines hosted on the system. –  NVRAM Mar 7 '10 at 16:03

3 Answers 3

up vote 3 down vote accepted

It shouldn't hurt. Linux's scheduler is aware of hyperthreading. Hyperthreading doesn't really cost anything if nothing is being run on the extra CPUs. With that said, it probably is not a large benefit unless you are running more than four CPU intensive threads at a time, but it should not hurt.

share|improve this answer
    
I just rebooted, and disabled HT to see if I notice any difference. Honestly, though, I think most of my use is I/O limited. –  NVRAM Nov 5 '09 at 17:42

The more cores the better.

Even though most pieces of software may not be multi core intelligent, the operating system is and if for example, you have sixteen processes, it will put two on each core that it sees.

The only time I would not use Hyperthreading is if I am 100% sure I will not benefit from it - During the P4 era, I managed several servers than had Hyperthreading and I decided to run benchmarking tools on them for the purpose they were being run, and there was just one that for some reason, (I forget it's task now) that simply outperformed by about 15% when it was turned off.

share|improve this answer
    
But it doesn't add cores, there are still only 4. Is it not like adding rooms to a house by simply building interior walls? No CPU-hungry thread can expand to the size of the "room". So, to stretch the analogy, unless the scheduler can "move the walls" the thread is limited to 12.5% (vs 25%) of available hardware. –  NVRAM Nov 5 '09 at 15:56
1  
Maybe I mis wrote the word cores - However, again, running benchmarks is the only way to really tell. Apart from one situation that I cannot remember, hyper threading always made the system much faster... You can't really put it down just to that analogy - if a program is designed to take on multiple cores (such as some encryption, compression or other), it will perform much faster as it "spreads out" where as if the application isnt aware, it is up to the OS to tell it what to use... –  William Hilsum Nov 5 '09 at 16:04
    
Actually, the analogy is valid since I said "thread" rather than "process". But, from Segfault's post it seems that the Linux schedule can in fact "move the walls". –  NVRAM Nov 5 '09 at 17:40
    
I didn't mean to say invalid - I just didn't understand it that well! but anyway, all I was trying to say is that I have done a hell of a lot of benchmarking (talking hours upon hours of work) and I found in nearly all cases, hyperthreading made the system faster some cases as much as 40%, however, when turned off, it was the same result every time with the exception of one task which I think was rendering (but can't honestly remember). –  William Hilsum Nov 5 '09 at 21:54
    
Thanks, no offense intended. My only real experience w/HT was on a single-core P4 running WXP; I wasn't benchmarking, just doing normal development work (mostly in DevStudio). The machine would be maxed but the CPU usage meter wouldn't rise above ~60%; turning HT off made it seem faster [and that made me doubt it was I/O or RAM limited]. –  NVRAM Nov 6 '09 at 3:59

you don't have 8 but 4 "pseudo cores", 4 physical + 4 virtual cores = 8 in total.

when you disable HT, you might as well get a Core i5, compare the benchmarks between i7 and i5 CPUs (both are quadcore Nehalems, with and without HT) and you know the answer to your question.

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.