Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Multi-processor chess (Windows flavors)

Author: Eugene Nalimov

Date: 21:55:25 03/08/00

Go up one level in this thread


On March 08, 2000 at 20:33:37, Robert Hyatt wrote:

>On March 08, 2000 at 15:27:03, Bruce Ramsey wrote:
>
>>Hi - A couple of (Windows flavor) multi-processor chess questions, please.
>>Apologies if these have all been belabored before, just point me to the faq if
>>so, please...
>>
>>1) So far I've spotted Deep Junior and Crafty as presently supporting multiple
>>processors for Windows NT/2000.  What others, if any, presently exist?
>>
>>2) What others, if any, are known to have plans for multiple processor support
>>in the (hopefully not-too-distant) future?
>>
>>3) As an NT/Win2k user, I'd like a little control over who is hogging how much
>>of which processors.  Do Deep Junior/Crafty allow the end-user control over the
>>priority of the engine threads running on the different processors?
>
>I don't see how a program can control this.  IE in unix, I can self-nice my
>process to a lower priority, but I am not aware of such facilities on other
>systems, as it is normally done by a sysadmin-type decision.  With Crafty,
>you can choose the number of processors to use.  IE if you run on a quad,
>you can use 1,2,3 or 4 cpus...  3 leaves one for normal stuff.  :)

In Win32/Win64 you can use SeyThreadPriority/SetPriorityClass API call.

>>
>>Reason for 3) is that if the developer simply A) counts available cpu's, then B)
>>spawns that many engine threads, then C) jacks all engine threads to
>>real-time-critical-highest thread priority, well then, lots of chess
>>calculations will happen, but nothing else will.
>
>
>This typically isn't possible, except for an admin-type account.  IE in Unix,
>I can _lower_ my priority, but I can't even raise it back to 'normal' once I
>do, only super-user can do that.
>
>
>> For example, if connected to a
>>chess server, there will be no cpu cycles avialable to receive/send moves
>>from/to the chess server.
>
>I can't imagine an O/S that bad in scheduling.  An I/O bound process, namely
>one running the chess server interface to your engine, would easily have a
>priority high enough to get the few cycles needed to do the I/O.

On NT/Win2k there are many services running (typical user would not turn them
off). By starting Crafty "start/realtime crafty.exe" you can squeeze several
more percents of performance - of course, you'll notice that. as even GUI would
be noticeable slower.

Eugene

>>
>>For example on a 2-CPU system, I'd hope to be able to do something like set the
>>thread priority of one engine thread to real-time-critical-highest, but leave
>>the priority of the other engine thread at normal priority.  And I'd like the
>>user interface for the chess program to be on its own thread, which I'd also set
>>at normal priority.  Then it's up to me as the operator to use the
>>mouse/keyboard as little as possible so as to rob as little as possible from the
>>engine thread running at normal priority.
>
>
>I don't understand why you would want 'real-time priority' for _any_ chess
>thread.  Let the engine run normally and suck up all available cycles.  On
>ICC, I run on my normal quad xeon that is in my office.  Where I am compiling
>linux kernels, doing testing on crafty, etc, all while crafty is playing on the
>server...  Let the O/S handle the scheduling... it can do it better than you or
>I can.
>
>
>
>
>>
>>Have I stopped making sense yet? :-)
>>
>>thanks, Bruce



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.