Prodeo loses on time

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

User avatar
mclane
Posts: 18748
Joined: Thu Mar 09, 2006 6:40 pm
Location: US of Europe, germany
Full name: Thorsten Czub

Re: Prodeo loses on time

Post by mclane »

SzG wrote:I've been testing Century and Gideon and often I find them staying in memory, reserving CPU cores. Once I found 7 instances of Century ticking in memory when it should have been only one. All this under WB with xreuse, so WB should have killed the process after each game.
My system is Intel Q6600 running 64-bit Vista, if that matters.
you can setup in the config file of the WB2UCI program to kill the thread after usage:


TerminateHard = true
is the line ... in default setting of WB2UCI this line says
TerminateHard = false. check this on your machine, edit the
file and write true instead of false into this command line.



[ENGINE]
Name = ProDeo 1.82
Author = Ed Schröder
Filename = rebeluci.exe

[OPTIONS]
Program = prodeo.exe w4 ProDeo.eng
; InitString = BookOff/n
LevelExtend = none
Analyze = false
UseUndo = false
Logfile = false
LevelType = 2
SimulateHint = true
TerminateHard = true
; In WIN XP or Win NT TerminateHard = true
Protocol = 1
Visible = Ponder,Logfile,Extras

[EXTRAS]
Personality=setvar personality personal\%s.eng|combo|ProDeo|ProDeo|Strong Club Player|Average Club Player|Absolute Novice Player|Q3 - Tactical Engine
Anti-GM=setvar antigm|combo|off|off|active|strong|smart
Playing Style=setvar playstyle|combo|normal|aggressive|active|normal|solid|defensive
Strength=setvar playstrength|combo|strong|novice|club player|strong
Opening Book=setvar bookfile books\%s.bin|combo|prodeo|prodeo
EOC database=setvar eocfile eoc\%s.eoc|combo|prodeo|prodeo
EOC Usuage=setvar eocuse|combo|none|none|moderate|strong|book
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Prodeo loses on time

Post by hgm »

mclane wrote:you can setup in the config file of the WB2UCI program to kill the thread after usage:
That does not help him much, because he is not using WB2UCI...

The main point is that engines should not need TerminateHard = true, unless there is something wrong with them.
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Prodeo loses on time

Post by hgm »

No, that would not have any effect. A game would never start in /xreuse mode before the unloading sequence of the engine was completed.

In WB mode the problem I sketched with adapters would also not occur, as WB runs the engine directly. So it will send 'quit' command to the engine, and then, if it does not get the signal the engine process has died, sends out a 'TerminateProcess' signal to order Windows to kill it forcefully.

Apparently the engine ignores the 'quit', and the killing on Windows proves unreliable. But this is really all a GUI can do. (*) The problem should be solved in the engine (making it obey the 'quit' command).

*) This is not quite true: there exists a Windows tool 'pv.exe' that can be used to kill processes by name. You could invoke that program after every game by specifying the option -afterGame "pv -k rebel.exe" to WinBoard, which as far as I could determine should lead to 100% effective killing. But this is a very dangerous method, because if there are multiple instances of rebel.exe running, you have no control over which one will be killed. So it is not compatible with using concurrency. I know that Olivier used an entire 'kill list' of unreliable engines in ChessWar.