20

When I go to the task manager I see 8 processors but I know that I have 4. Why?

alt text

migrated from serverfault.com Jan 14 '10 at 23:24

This question came from our site for system and network administrators.

38

Hyperthreading.

Hyper-threading abstracts away task switching from the operating systems. Normally an operating system has to deal with scheduling processes over different CPUs as well as ensuring that each task that runs on the system has its fair share, but not too much (if something else wants it) of the CPU.

Hyper-threading is a way of taking that 2nd process of task sharing away from the operating system, at least for a little bit. The reason is that the processor can task switch much faster than the operating system can tell it to. So by presenting two logical processors when there is in fact only one, the operating system has to do only half as many task switching operations, but more CPU scheduling. But the net result is supposedly a faster machine in multi-tasking operations.

The actual benefits of this vary greatly depending on the workload that you're doing. For most people, there is no harm in leaving it on or turning it off. 4 vs 8 threads is like choosing between a ferrari or a lamborghini for home users.

However, in server scenarios, it can make a large difference. For example, hypervisors can often get a large increase in speed through the use of hyperthreading, as they have very strict CPU scheduling requirements.

However, SQL servers often do not get this increase, because it's often better to have four "large" threads than 8 "medium" sized threads.

  • 3
    As a highly valued Super User, I suggest you revisit this answer and add more detail. The link doesn't help to explain anything on what Hyperthreading is or what it does. – James Mertz Jul 26 '12 at 18:09
11

That my friend is hyper-threading.

Hyperthreading is a form of simultaneous multi-threading that takes advantage of super scalar architecture. Multiple instructions operating on separate data in parallel. They appear to the OS as two processors, thus the OS can schedule two processes at once. In addition two or more processes can use the same resources. If one process fails then the resources can be readily re-allocated. The OS must support simultaneous multi-threading (SMT).

  • 1
    "Beauty" is debatable. In some cases hyperthreading destroys performance. – MDMarra Jan 14 '10 at 22:11
  • It all depends on what you're doing – prestomation Jan 14 '10 at 22:24
  • You guys happy now? :D (Wasn't trying to elicit a troll war or anything) – wayoutmind Jan 14 '10 at 22:28
  • 1
    "That, my friend, is hyper-threading in all it's beauty!" :) – Molly7244 Jan 14 '10 at 23:36
  • I'll go with the beauty version. While I've heard reports of negative performance impacts in some circumstances, I've been unable to duplicate. Hyperthreading has always been faster for me. Even in it's older forms. – Brian Knoblauch Jan 15 '10 at 14:53
6

The i7 family is a Quad-core processor that has 8 threads. Normal quad-cores have 4 threads, and since hyper-threading is enabled, your computer recognizes those 8 threads as processors.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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