Looking for automatic Engine Testing Software

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

OliverBr
Posts: 725
Joined: Tue Dec 18, 2007 9:38 pm
Location: Munich, Germany
Full name: Dr. Oliver Brausch

Looking for automatic Engine Testing Software

Post by OliverBr »

Hello together,

I am looking for a piece of software to test engines most comfortably. It should be able to run automatically many (>1000) games against other versions/engines and yields a reliable and reproductive result. Dependent of the number of cores it should be able to run games simultaneously in order get sooner results. Linux would be a nice to have.

I am quite sure that the Stockfishs and Komodos use something like this if they test some changes.

Thank you very much!
Chess Engine OliThink: http://brausch.org/home/chess
OliThink GitHub:https://github.com/olithink
chrisw
Posts: 4313
Joined: Tue Apr 03, 2012 4:28 pm

Re: Looking for automatic Engine Testing Software

Post by chrisw »

OliverBr wrote: Sun Jul 19, 2020 2:24 pm Hello together,

I am looking for a piece of software to test engines most comfortably. It should be able to run automatically many (>1000) games against other versions/engines and yields a reliable and reproductive result. Dependent of the number of cores it should be able to run games simultaneously in order get sooner results. Linux would be a nice to have.

I am quite sure that the Stockfishs and Komodos use something like this if they test some changes.

Thank you very much!
PET, Ed Schroeder bat files, cutechess,
mhouppin
Posts: 115
Joined: Wed Feb 12, 2020 5:00 pm
Full name: Morgan Houppin

Re: Looking for automatic Engine Testing Software

Post by mhouppin »

OliverBr wrote: Sun Jul 19, 2020 2:24 pm Hello together,

I am looking for a piece of software to test engines most comfortably. It should be able to run automatically many (>1000) games against other versions/engines and yields a reliable and reproductive result. Dependent of the number of cores it should be able to run games simultaneously in order get sooner results. Linux would be a nice to have.

I am quite sure that the Stockfishs and Komodos use something like this if they test some changes.

Thank you very much!
OpenBench is a quite powerful tool for testing engine modifications: https://github.com/AndyGrant/OpenBench
jdart
Posts: 4366
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: 3546
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: 4366
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: 4313
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: 4366
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: 4313
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.