[RC5] Does Intel hyperthreading help?

Chris Jones chris at chris-j.net
Tue Aug 19 18:09:29 EDT 2003

I think he was getting at "How well does the OS divide processor time among

Chris Jones
fiddles at distributed.net
chris at chris-j.net

-----Original Message-----
From: rc5-bounces at lists.distributed.net
[mailto:rc5-bounces at lists.distributed.net] On Behalf Of Ryan Malayter
Sent: Tuesday, 19 August 2003 7:45 AM
To: D.net Discussion
Subject: RE: [RC5] Does Intel hyperthreading help?

From: bdragon at distributed.net [mailto:bdragon at distributed.net] 
> It ultimately depends on the process scheduling 
> efficiency of your operating system. 

Can you even define for us "process scheduling efficiency"? Even if
you're talking about the number of instructions needed to do context
switching between processes or threads, which I doubt you are, what
could that possibly have to do with Hyperthreading?

Hyperthreading acts like a dual-processor system, but with a much slower
second processor. It only helps when your applications are (1)
multi-threaded and (2) the different threads utilize different parts of
the CPU. 

For example, say  process A utilizes 10% of integer pipeline #1 and 100%
of the main floating point pipeline. Process B, without Hyperthreading,
would simply time-slice with process A, that is only one of them would
be executing at any given time. With hyper-threading turned on, the
additional 90% of integer pipeline #1 can be utilized to some extent for
process B, improving the completion time for all tasks.

> If the OS is a good scheduler, you'll likely hurt 
> performance due to the aforementioned additional overhead.

This seems to be meaningless techno-babble. What is a "good scheduler"?
What exactly is the additional overhead?

> I've heard of performance increases with hyperthreading 
> under Windows, fwiw.

And Linux, BeOS, or any other multi-threaded OS running the right mix of
multi-threaded *applications*. 

You obviously have a bias against Microsoft, but do you really think
Windows just sits there running NOPs at random? There might be a bunch
of unnecessary, inefficient branches in MS code, but the processor is
actually doing *something* when it runs through those instructions. I
can't see how this would make Hyperthreading any more or less effective.
rc5 mailing list
rc5 at lists.distributed.net

More information about the rc5 mailing list