Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Possible Duplicate:
Hyper-Threading and Dual-Core, What's the Difference?

Most Intel processors feature what they call "hyperthreading," basically another virtual core for each physical core.

Is there a significant difference between these virtual cores and physical cores? For example, if I bought an 8-core machine and a hyperthreaded quad-core both at the same clock with similar specifications, would the 8 physical core machine outperform the quad-core-with-hyperthreading machine?

share|improve this question

marked as duplicate by Ƭᴇcʜιᴇ007, Sathya Nov 17 '11 at 4:32

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

up vote 7 down vote accepted

Yes, there is a difference.

Obviously, physical cores would only outperform the virtual cores if programs actually use them. :)

Virtual cores simply take advantage of CPU stalls to process another thread, while the CPU is waiting. When nothing is stalling, though, they don't run more instructions at a time than a single core.

Physical cores, on the other hand, actually run multiple threads in parallel; they are very similar to multiple physical processors, except that caches and such components might be shared at some levels.

share|improve this answer
    
Note that this answer is talking about a version of hyperthreading that has very little to do with the kind of hyperthreading modern CPUs have. – David Schwartz Apr 10 at 21:57
    
@DavidSchwartz: Not sure what you mean, elaborate? – Mehrdad Apr 10 at 22:28
    
This answer was applicable to the ancient form of hyperthreading available on the Pentium 4 but is totally inapplicable to modern hyperthreading which has nothing to do with taking advantage of CPU stalls and does run more instructions at a time even if nothing stalls. For example, if one thread is doing only integer operations, the other thread can use all the floating point units all the time. – David Schwartz Apr 10 at 22:36
    
@DavidSchwartz: You're right that I was indeed referring to Pentium 4 HT when I wrote it, but I'm not sure I agree that the definition has really changed. Are you sure you're talking about "hyperthreading" and not a different term like a "superscalar" CPU or "simultaneous multi-threading"? If you really mean hyperthreading is different now, can you provide me a link that explains the details of what you're trying to say? – Mehrdad Apr 10 at 22:38
    
I'm talking about modern hyperthreading. Each thread has equal access to the resources on the core and they can both run at full speed so long as they don't exhaust the supply of execution units at any particular time. Of course, if they both try to use all the floating point multipliers, then one will have to wait for the other. – David Schwartz Apr 10 at 22:40

Well, the difference is so significant, you could end up with no performance difference between a dual core with hyperthreading and a regular dual core. Consider hyperthreading as a 'recycling' feature, it could use clocks that otherwise unusable due to memory access. But on simplistic process, it could give you no improvement at all.

share|improve this answer
    
+1, and I believe you meant to write "Well, the difference is so insignificant..."? – Randolf Richardson Nov 17 '11 at 3:40
    
I thought it was rhetoricly accurate to the way it was sold :-) – Psycogeek Nov 17 '11 at 5:55
    
Sorry, I mean the difference between a physical dual core with a hyperthreaded core – Martheen Cahya Paulo Nov 18 '11 at 5:48

Not the answer you're looking for? Browse other questions tagged .