[RC5] Does Intel hyperthreading help?

Ryan Malayter rmalayter at bai.org
Mon Aug 18 17:45:02 EDT 2003

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.

More information about the rc5 mailing list