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?


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.

  • 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 '16 at 21:57
  • @DavidSchwartz: Not sure what you mean, elaborate? – user541686 Apr 10 '16 at 22:28
  • 2
    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 '16 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? – user541686 Apr 10 '16 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 '16 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.

  • +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 or ask your own question.