Looking for automatic Engine Testing Software

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

jdart
Posts: 4368
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Looking for automatic Engine Testing Software

Post by jdart »

If you are running on a single machine then cutechess-cli is really all you need.

Several engine developers are using OpenBench https://github.com/AndyGrant/OpenBench, developed by Andy Grant, author of Ethereal. It is similar in functionality to Fishtest (https://github.com/glinscott/fishtest, which is what the Stockfish team is using. These support tests run on multiple machines, possibly in mulitiple locations (WAN). OpenBench makes some assumptions, for example that an engine supports the "bench" command.

I use a combination of Python and shell scripts, together with cutechess-cli, to run matches on multiple machines, monitor the results, and do the SPRT test to determine when to stop the test. This assumes all machines are on a LAN. I haven't released all the pieces of this setup, but some parts of it are in the Arasan tool directory (https://github.com/jdart1/arasan-chess/ ... ster/tools) on Github: in particular, match.py, match_status.py and monitor.py.

--Jon
Modern Times
Posts: 3557
Joined: Thu Jun 07, 2012 11:02 pm

Re: Looking for automatic Engine Testing Software

Post by Modern Times »

Yes cutechess for me, although I use the GUI as I do like to see the games in progress from time to time.
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: Looking for automatic Engine Testing Software

Post by OliverBr »

Thank you for your tips!

As far as I can tell, there are two possibilities: Cutechess or OpenBench. Both seem to provide:

- Cross platform
- Concurrent Games on multiple CPU Cores
- Xboard Protocol

What are the main differences between those two?
jdart wrote: Sun Jul 19, 2020 3:16 pm OpenBench makes some assumptions, for example that an engine supports the "bench" command.
Interesting. Where can I find more about those assumptions?
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
jdart
Posts: 4368
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Looking for automatic Engine Testing Software

Post by jdart »

Cutechess-cli provides the functionality to run matches, with many options.

OpenBench uses cutechess-cli for that layer of functionality but adds a UI on top and coordination across multiple machines, among other features. There is some basic documentation for it on the Github page. See "Engine Compliance with Openbench" section for what requirements are placed on engines.

--Jon
chrisw
Posts: 4346
Joined: Tue Apr 03, 2012 4:28 pm

Re: Looking for automatic Engine Testing Software

Post by chrisw »

jdart wrote: Sun Jul 19, 2020 6:20 pm Cutechess-cli provides the functionality to run matches, with many options.

OpenBench uses cutechess-cli for that layer of functionality but adds a UI on top and coordination across multiple machines, among other features. There is some basic documentation for it on the Github page. See "Engine Compliance with Openbench" section for what requirements are placed on engines.

--Jon
I don’t think you can have a private engine on that system. Which means basically you are forced into some kind if GPL licence which some people may not want to do
jdart
Posts: 4368
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Looking for automatic Engine Testing Software

Post by jdart »

I don’t think you can have a private engine on that system. Which means basically you are forced into some kind if GPL licence which some people may not want to do
Not so. You can run your own private server. And in any case, you are not linking with OpenBench, or distributing your engine along with it, so its license provisions would not apply to your engine, IMO.

--Jon
chrisw
Posts: 4346
Joined: Tue Apr 03, 2012 4:28 pm

Re: Looking for automatic Engine Testing Software

Post by chrisw »

jdart wrote: Sun Jul 19, 2020 7:41 pm
I don’t think you can have a private engine on that system. Which means basically you are forced into some kind if GPL licence which some people may not want to do
Not so. You can run your own private server. And in any case, you are not linking with OpenBench, or distributing your engine along with it, so its license provisions would not apply to your engine, IMO.

--Jon
I thought the idea was that engines were spread out over participating users PC and ran on those. A puts his engine on the system for testing and (unknown?) users XYZ have the engine on their system at home. Seems a pretty good way to get your engine “distributed”, willing or not. Or am I missing something.
OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Re: Looking for automatic Engine Testing Software

Post by OliverBr »

For Mac Users:

Code: Select all

brew install qt
echo 'export PATH="/usr/local/opt/qt/bin:$PATH"' >> ~/.bash_profile
then new Terminal Window:

Code: Select all

git clone https://github.com/cutechess/cutechess.git
cd cutechess
qmake -spec macx-g++ -config static
make
cp projects/cli/cutechess-cli /usr/local/bin/
let them play:

Code: Select all

cutechess-cli -engine cmd=olithink557a -engine cmd=../olithink557 -each proto=xboard tc=40/60 -rounds 10 -concurrency 2
Many thanks and great respect for the creators of cutechess. Open source rules!
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
User avatar
hgm
Posts: 27869
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Looking for automatic Engine Testing Software

Post by hgm »

If you want to be able to watch the games, you could also use XBoard. (Available for Linux and Mac.)
User avatar
xr_a_y
Posts: 1871
Joined: Sat Nov 25, 2017 2:28 pm
Location: France

Re: Looking for automatic Engine Testing Software

Post by xr_a_y »

chrisw wrote: Sun Jul 19, 2020 8:21 pm
jdart wrote: Sun Jul 19, 2020 7:41 pm
I don’t think you can have a private engine on that system. Which means basically you are forced into some kind if GPL licence which some people may not want to do
Not so. You can run your own private server. And in any case, you are not linking with OpenBench, or distributing your engine along with it, so its license provisions would not apply to your engine, IMO.

--Jon
I thought the idea was that engines were spread out over participating users PC and ran on those. A puts his engine on the system for testing and (unknown?) users XYZ have the engine on their system at home. Seems a pretty good way to get your engine “distributed”, willing or not. Or am I missing something.
You can host your own openbench server and client on your own set of machines. Nobody else will see your dev or fill your hardware, but you also won't be able to use others resources ...

For Minic I've build a docker image for this : https://github.com/tryingsomestuff/Mini ... ter/Docker