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>