cutechess-cli

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

cutechess-cli

Post by michiguel »

I am experimenting with cutechess-cli and have a couple of questions.

After building from the sources, I had to figure out that some libraries were generated and had to be installed in the system. It will be much easier if this is already included in the Makefile. Did I miss something? I copy them to /usr/local/lib and executed ldconfig. Is that all? it seems to work.

It there a way to tell all engines to ponder on or off at once?

Miguel
CRoberson
Posts: 2055
Joined: Mon Mar 13, 2006 2:31 am
Location: North Carolina, USA

Re: cutechess-cli

Post by CRoberson »

I use an old version of cutechess-cli and pondering is not supported thus always off.
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: cutechess-cli

Post by ilari »

michiguel wrote:After building from the sources, I had to figure out that some libraries were generated and had to be installed in the system. It will be much easier if this is already included in the Makefile. Did I miss something? I copy them to /usr/local/lib and executed ldconfig. Is that all? it seems to work.
That works, but it's not necessary. You could also run "export LD_LIBRARY_PATH=path_to_cutechess_dir/projects/lib". Or you could link to libchess statically by running "qmake -config static" followed by "make".

It there a way to tell all engines to ponder on or off at once?
Unfortunately pondering isn't supported yet.
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: cutechess-cli

Post by michiguel »

ilari wrote:
michiguel wrote:After building from the sources, I had to figure out that some libraries were generated and had to be installed in the system. It will be much easier if this is already included in the Makefile. Did I miss something? I copy them to /usr/local/lib and executed ldconfig. Is that all? it seems to work.
That works, but it's not necessary. You could also run "export LD_LIBRARY_PATH=path_to_cutechess_dir/projects/lib". Or you could link to libchess statically by running "qmake -config static" followed by "make".

It there a way to tell all engines to ponder on or off at once?
Unfortunately pondering isn't supported yet.
If I did not say this before, thanks a lot for this tool.

I ran a match to 100,000 games (just to get short pgn files to build a test set, I made the engines resign after 10 moves) and I got this error

Gaviota_1 wins the game as black
Score of Gaviota_1 vs Gaviota_2: 10109 - 10353 - 0
Started game 20463 of 100000
pure virtual method called
terminate called without an active exception

real 16m53.211s
user 0m19.073s
sys 0m21.729s

Miguel
User avatar
Guenther
Posts: 4602
Joined: Wed Oct 01, 2008 6:33 am
Location: Regensburg, Germany
Full name: Guenther Simon

Re: cutechess-cli

Post by Guenther »

michiguel wrote:
ilari wrote:
michiguel wrote:After building from the sources, I had to figure out that some libraries were generated and had to be installed in the system. It will be much easier if this is already included in the Makefile. Did I miss something? I copy them to /usr/local/lib and executed ldconfig. Is that all? it seems to work.
That works, but it's not necessary. You could also run "export LD_LIBRARY_PATH=path_to_cutechess_dir/projects/lib". Or you could link to libchess statically by running "qmake -config static" followed by "make".

It there a way to tell all engines to ponder on or off at once?
Unfortunately pondering isn't supported yet.
If I did not say this before, thanks a lot for this tool.

I ran a match to 100,000 games (just to get short pgn files to build a test set, I made the engines resign after 10 moves) and I got this error

Gaviota_1 wins the game as black
Score of Gaviota_1 vs Gaviota_2: 10109 - 10353 - 0
Started game 20463 of 100000
pure virtual method called
terminate called without an active exception

real 16m53.211s
user 0m19.073s
sys 0m21.729s

Miguel
BTW why is the score not evenly distributed after the first 20462 games?
Did they not resign in alternate mode or always for the same colour?

Guenther
Mincho Georgiev
Posts: 454
Joined: Sat Apr 04, 2009 6:44 pm
Location: Bulgaria

Re: cutechess-cli

Post by Mincho Georgiev »

I have a question about cutechess-cli too. Is it possible to use it with pgn opening database and therefore the openings to be equivalent for white and blacks? Thanks.
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: cutechess-cli

Post by ilari »

michiguel wrote:I ran a match to 100,000 games (just to get short pgn files to build a test set, I made the engines resign after 10 moves) and I got this error

Gaviota_1 wins the game as black
Score of Gaviota_1 vs Gaviota_2: 10109 - 10353 - 0
Started game 20463 of 100000
pure virtual method called
terminate called without an active exception

real 16m53.211s
user 0m19.073s
sys 0m21.729s

Miguel
I've seen this error before, it usually happens when deleting an object that is still in use, probably a multi-threaded race condition. You can try debugging it by compiling cutechess in debug mode ("qmake -config debug") and running the match under gdb. At some point you'd hopefully get a crash or termination by Q_ASSERT, and you'd get a backtrace.

What OS do you use, which Qt version, and what command did you use for the match? I'm especially interested in the "concurrency" value and time control.
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: cutechess-cli

Post by ilari »

Mincho Georgiev wrote:I have a question about cutechess-cli too. Is it possible to use it with pgn opening database and therefore the openings to be equivalent for white and blacks? Thanks.
You can use a PGN collection/database as an opening book with the "-pgnin <file>" option. You can combine that with the "-repeat" option to play each opening twice so that both players get to play as white and black.
BubbaTough
Posts: 1154
Joined: Fri Jun 23, 2006 5:18 am

Re: cutechess-cli

Post by BubbaTough »

while talking about cutechess, I have a feature request :).

I would like an option to randomize the order that positions from a pgn file are chosen for games. So if I have 1000 positions in a file, and play a 100 games with repeat on, 50 positions are chosen randomly (with no repeats) from those 1000 as the starting positions for games.

It would help those of us who terminate early on bad results not accidently over-optimize on the beginning positions in the file.

-Sam
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: cutechess-cli

Post by michiguel »

ilari wrote:
michiguel wrote:I ran a match to 100,000 games (just to get short pgn files to build a test set, I made the engines resign after 10 moves) and I got this error

Gaviota_1 wins the game as black
Score of Gaviota_1 vs Gaviota_2: 10109 - 10353 - 0
Started game 20463 of 100000
pure virtual method called
terminate called without an active exception

real 16m53.211s
user 0m19.073s
sys 0m21.729s

Miguel
I've seen this error before, it usually happens when deleting an object that is still in use, probably a multi-threaded race condition. You can try debugging it by compiling cutechess in debug mode ("qmake -config debug") and running the match under gdb. At some point you'd hopefully get a crash or termination by Q_ASSERT, and you'd get a backtrace.

What OS do you use, which Qt version, and what command did you use for the match? I'm especially interested in the "concurrency" value and time control.
The command was build in script, but if I print it rather than executing it it would be this:
/home/miguel/Desktop/cc/sloppygui/projects/cli/cutechess-cli -fcp name=Gaviota_1 cmd=./gaviota dir=/home/miguel/cc/gaviota-testmaker proto=xboard -scp name=Gaviota_2 cmd=./gaviota dir=/home/miguel/cc/gaviota-testmaker2 proto=xboard -both tc=40/0:20+0 -pgnout testmake.pgn -games 100000

The series of Qt libraries I have installed are
4:4.6.2-0ubuntu5

The OS is Ubuntu 10.04 32 bits.

Miguel