[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: New Computer





David,

Yes, Hyperthreading does not work some well on true
multi-CPU systems.  The OS (Linux) would see four CPUs
as each real CPU appears as two virtual CPUs and then
should you be so un-lucky as to only have two tasks
running on the box random change would sometimes
assign both tasks to the same physical CPU.

The route of the problem that Linux assumes that all
CPUs are created equal and this is not longer true
on some systems.

There are two ways to fix this problem:

1) Get a newer Linux kernel that addresses the
problem.
But this would mean patches and running a development
kernel.  Not easy for many people.

2) Make sure that there are always more tasks to run
then there are CPUs

Seems to me the disabling hyperthreading as you did
was just one method of doing #2.

Hyperthreading is not magic.  It is just fast context
switching in hardware.  It's a smart trick that gives
the CPU hardware something to do when it would
otherwise have to halt and wait on say a cache miss.



--- David Dunbar <ddunbar@geocenter.com> wrote:
<SNIP>
> 
> Depending on how compute intensive the job is,
> hyperthreading can be a 
> booby trap. We have a 100 node Linux cluster of dual
> CPU 2.4 GHz 
> machines for seismic migration and other compute
> intensive tasks. When 
> delivered they had hyperthreading turned on. We
> normally send two 
> threads to each cluster node. Jobs were very
> inconsistent in execution 
> times. It turned out that the scheduler would
> randomly assign the jobs 
> to the same CPU and let the other sit idle. We
> turned hyperthreading off.
><SNIP>


=====
Chris Albertson
  Home:   310-376-1029  chrisalbertson90278@yahoo.com
  Cell:   310-990-7550
  Office: 310-336-5189  Christopher.J.Albertson@aero.org
  KG6OMK

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com