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.