Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: A question for those with multiprocessor machines

Author: Gregor Overney

Date: 22:56:23 02/01/01

Go up one level in this thread


Almost every better commercial application for NT is multi-threaded. If the
application does not force NT to utilize only one CPU, NT will schedule the
threads on all LWP's that are available. (LWP = Light weight process = threads
with kernel awareness.) This is called a decent load-balancing.

If you see 50% for both CPU's then this is because NT switches back and forth
between CPU's and your sampling rate is rather low. If you would increase your
sampling rate enough to be comparable with the switching time of NT's scheduler,
you should see 100/0...0/100...100/0...0/100... which averages out to be 50/50.
If you see a 50/50, the lion-share of Matlab seems not to be multi-threaded.
However, when you run Crafty on two CPU's you will see 100/100 (minus a little
CPU time for the rest of the system).

Performance: 2 x PIII/500 < 1 x PIII/1000 for every single-threaded application
on Windows NT and 2000. The advantage is that you can use one CPU for browsing
and one CPU for number crunching. That's it.

Of course, scheduling is an art form. Although NT and 2000 are using a rather
simple scheduling model (known as the "One Thread per LWP" which limits the
number of threads on a Win32 box to 256,000; (forget about Win32's "fibers"
library)), it is still far from trivial to exactly explain why NT's default
behavior is switching back and forth between available CPU's. Getting the most
efficient scheduling for a multi-processor system is a tough business.

Personally, I recommend a multi-processor system should your budget allow it. It
is a much more responsive system when used with NT 4 SP6, 2000 Prof. SP1, Linux
2.2,.....

Gregor




This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.