Linked by David Adams on Wed 4th Aug 2010 18:28 UTC, submitted by estherschindler
Hardware, Embedded Systems Anyone contemplating a new computer purchase (for personal use or business) is confronted with new (and confusing) hardware choices. Intel and AMD have done their best to differentiate the x86 architecture as much as possible while retaining compatibility between the two CPUs, but the differences between the two are growing. One key differentiator is hyperthreading; Intel does it, AMD does not. This article explains what that really means, with particular attention to the way different server OSes take advantage (or don't). Plenty of meaty tech stuff.
Thread beginning with comment 435413
To read all comments associated with this story, please click here.
Comment by vivainio
by vivainio on Wed 4th Aug 2010 19:08 UTC
vivainio
Member since:
2008-12-26

Then there’s application hyperthreading, wherein an application is written to perform tasks in parallel.


In my youth, we called this just "multithreading".

Reply Score: 3

RE: Comment by vivainio
by Brendan on Wed 4th Aug 2010 19:42 in reply to "Comment by vivainio"
Brendan Member since:
2005-11-16

Hi,

"Then there’s application hyperthreading, wherein an application is written to perform tasks in parallel.


In my youth, we called this just "multithreading".
"

"Multi-threading" or "threads" in software is a completely different concept that doesn't really have much to do with hyper-threading (in the same way that "process" isn't the same as "processor").

"Hyper-threading" is a marketing term Intel use. It's usually called SMT or Symmetrical Multi-Threading by hardware people (in the same way as SMP or Symmetrical Multi-Processing is used).

To avoid confusion it's best to use "logical CPU" instead of "thread" if you're talking about SMT/hyper-threading. For example, "a physical CPU contains one or more cores, which contain one or more logical CPUs".

- Brendan

Reply Parent Score: 10

Doh - More Mistakes
by Brendan on Wed 4th Aug 2010 20:10 in reply to "RE: Comment by vivainio"
Brendan Member since:
2005-11-16

Hi,

Just realised "Then there’s application hyperthreading, wherein an application is written to perform tasks in parallel." (and the confusing use of "threads") isn't the only mistake in the article.

There's "Intel dropped the technology when it introduced the Core architecture in 2004 and brought it back with the Nehalem generation in 2008". This isn't quite right - Atom (released in June 2008) had hyper-threading before Nehalem (which was released in March 2009, not in 2008).

Then "The CPU executes one instruction at a time, according to its clock speed." which is just plain wrong. A modern CPU's pipeline actually has multiple execution units (e.g. Nehalem's pipeline has 9 execution units - some for integer instructions, some for SSE, etc), and it's possible to complete several instructions per cycle.

The article also says "Multithreading does not add genuine parallelism to the processing structure because it’s not executing two threads at once.". This is wrong because hyper-threading can give genuine parallelism (e.g. one logical CPU executing integer instructions while another logical CPU executes SSE instructions; where they both use different execution units in the same core at the same time).

I should probably add that while AMD's marketing department probably doesn't like "hyper-threading" (Intel's marketing), AMD's "Bulldozer" CPUs are planned to have something where 2 cores share some execution units to improve utilisation of those execution units. This will confuse things even more - the end result would be that a pair of AMD cores will behave a little bit like separate cores and a little bit like a single core with hyper-threading.

-Brendan

Reply Parent Score: 13