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.