Computer Chess Club Archives


Search

Terms

Messages

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

Author: Robert Hyatt

Date: 17:33:37 03/08/00

Go up one level in this thread


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.  :)




>
>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.



>
>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.