Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 May 2002 12:26:56 -0700
From:      Terry Lambert <tlambert2@mindspring.com>
To:        Brooks Davis <brooks@one-eyed-alien.net>
Cc:        Alfred Perlstein <bright@mu.org>, "Dorr H. Clark" <dclark@applmath.scu.edu>, freebsd-smp@freebsd.org
Subject:   Re: hyperthreading: myth or legend? (was Re: hyperthreading? (was Re:  question))
Message-ID:  <3CEBF100.DBF563D5@mindspring.com>
References:  <20020514222840.GB1585@elvis.mu.org> <Pine.GHP.4.21.0205220940410.28331-100000@hpux38.dc.engr.scu.edu> <20020522172759.GV54960@elvis.mu.org> <3CEBE6FD.626DC5DD@mindspring.com> <20020522115812.A7330@Odin.AC.HMC.Edu>

next in thread | previous in thread | raw e-mail | index | archive | help
Brooks Davis wrote:
> You're both right.  Optimal performance is achieved by optimizing the
> way Terry described, at that's a direction we need to consider assuming
> hyperthreading stays around, however, when you don't do any of those
> things, Intel lets you pretend you have two CPUs on one die.  Performance
> is not identical (if nothing else the two CPUs share memory bandwidth
> and the P4 is seriously bandwidth hungry), but it just works.

The "40%" number is:

o	The high end of what you can expect
o	Not achievable without those techniques

> When you
> think about it, Intel had to go with that approach for all the reasions
> AMD emulates the Intel SMP programming model on the Athlon.  Simply put,
> they have to support NT 4, Win2K, and XP without modification.  Heck,
> I'd be slightly suprised if Windows.net supports Hyperthreading nativly.

Windows does not have the necessary affinity support in their scheduler;
if you read the PDF whose reference I posted, you will wee that that is
the case.  The only OS with the affinity support is "upcoming Linux 7.1"
at the time of the publication of the PDF -- in other words, Red Hat
Linux 7.1.

Even so, their affinity is broken.  You simply can not put affinity
into a scheduler, and solve the problem with a single run queue.  In
the non-uniform load case (the common case for UNIX systems running
more than a single process -- e.g. "cron" runs every second), you will
experience starvation deadlock, as the scheduler "prefers" the threads
in the current thread groupm and starves out everything else.


> Of course, since they show up as two CPUs each, you can't run NT Server
> on a dual Xeon box and I think you need Datacenter for a quad so it's
> not nearly as much of a win for Windows users. :-)

It's not much of a win in Windows anyway.  See The PDF.  Without
the heroic measures I listed, you will be lucky to get 18%.  Adding
a second real CPU will give you closer to 90-95%.

-- Terry

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3CEBF100.DBF563D5>