Linux/Mac engine gauntlet, cluster testing

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

Moderator: Ras

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

Re: Linux/Mac engine gauntlet, cluster testing

Post by jdart »

Current versions of Rodent do not compile/run on Linux.

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

Re: Linux/Mac engine gauntlet, cluster testing

Post by jdart »

Most people are using cutechess-cli for matches. You are going to a lot of work if you are trying to replace that. It does require a shared library to function but it is easy to load that - just set LD_LIBRARY_PATH in your .bashrc (for Linux). (You also need Qt libraries installed). Only thing is, it does not support pondering, but if you are ok with ponder off it probably does everything you need.

--Jon
elcabesa
Posts: 858
Joined: Sun May 23, 2010 1:32 pm

Re: Linux/Mac engine gauntlet, cluster testing

Post by elcabesa »

latest vajolet should work on linux :)
you should also found some linux executable https://drive.google.com/file/d/0B8vVDp ... sp=sharing
matthewlai
Posts: 793
Joined: Sun Aug 03, 2014 4:48 am
Location: London, UK

Re: Linux/Mac engine gauntlet, cluster testing

Post by matthewlai »

jdart wrote:Most people are using cutechess-cli for matches. You are going to a lot of work if you are trying to replace that. It does require a shared library to function but it is easy to load that - just set LD_LIBRARY_PATH in your .bashrc (for Linux). (You also need Qt libraries installed). Only thing is, it does not support pondering, but if you are ok with ponder off it probably does everything you need.

--Jon
Yeah I looked into that as well. I may do that if writing it myself turns out to be too difficult (the only way I see that can be the case is if buggy engines require too many workarounds).

It was actually much less work than I had anticipated.

I spent about 15 hours on it, and it already has proper support for features (determining move format the engine needs, and things like ping, etc), can play games from list of starting positions, can keep track of time, verifies all mate and draw claims, properly translate between SAN and algebraic for engines that require either format, etc. Also verified perft on many starting positions.

The really only things left to do are workarounds for buggy engines.

For modern "protover 2" engines it works pretty well already.

I am also in favor of using simple programs linked together to complete tasks (UNIX philosophy), so my program will not do tournament management, etc, unlike cutechess-cli.

I will probably write another program to do tournament management, maybe distributed over MPI.

Another advantage of writing my own program is that it will be easier for me to reuse the code for looking for specific kinds of positions in PGN files, etc. And maybe add some hooks in tournaments to do automatic parameter tuning.
latest vajolet should work on linux Smile
you should also found some linux executable
Thanks! I'll keep that in mind if I have time to add more engines (probably after I go through and test all the existing ones, and eliminate buggy ones).
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.
dusando
Posts: 27
Joined: Thu May 01, 2014 12:58 pm

Re: Linux/Mac engine gauntlet, cluster testing

Post by dusando »

matthewlai wrote: Pepito's code looks very old (GCC 2.x era), and didn't look like it will compile without many changes.
Pepito 1.59 compiled fine using GCC 4.8.3. In a linux system, it just needed to add -lm to the linking command in the makefile: $(CC) -lm $(CFLAGS) -o pepitox $(OBJECTS)
matthewlai
Posts: 793
Joined: Sun Aug 03, 2014 4:48 am
Location: London, UK

Re: Linux/Mac engine gauntlet, cluster testing

Post by matthewlai »

dusando wrote:
matthewlai wrote: Pepito's code looks very old (GCC 2.x era), and didn't look like it will compile without many changes.
Pepito 1.59 compiled fine using GCC 4.8.3. In a linux system, it just needed to add -lm to the linking command in the makefile: $(CC) -lm $(CFLAGS) -o pepitox $(OBJECTS)
Ah It's probably LLVM-specific then. Do you get any warnings with "-Wall"?
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.
jdart
Posts: 4423
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Linux/Mac engine gauntlet, cluster testing

Post by jdart »

I think Amy is in the too old/too buggy category.

--Jon
dusando
Posts: 27
Joined: Thu May 01, 2014 12:58 pm

Re: Linux/Mac engine gauntlet, cluster testing

Post by dusando »

matthewlai wrote:
dusando wrote:
matthewlai wrote: Pepito's code looks very old (GCC 2.x era), and didn't look like it will compile without many changes.
Pepito 1.59 compiled fine using GCC 4.8.3. In a linux system, it just needed to add -lm to the linking command in the makefile: $(CC) -lm $(CFLAGS) -o pepitox $(OBJECTS)
Ah It's probably LLVM-specific then. Do you get any warnings with "-Wall"?
Just tried to add -Wall, oh yes, plenty of warnings :) - the engine runs stable though, played quite some test games against Phalanx with no issues.
matthewlai
Posts: 793
Joined: Sun Aug 03, 2014 4:48 am
Location: London, UK

Re: Linux/Mac engine gauntlet, cluster testing

Post by matthewlai »

dusando wrote:
matthewlai wrote:
dusando wrote:
matthewlai wrote: Pepito's code looks very old (GCC 2.x era), and didn't look like it will compile without many changes.
Pepito 1.59 compiled fine using GCC 4.8.3. In a linux system, it just needed to add -lm to the linking command in the makefile: $(CC) -lm $(CFLAGS) -o pepitox $(OBJECTS)
Ah It's probably LLVM-specific then. Do you get any warnings with "-Wall"?
Just tried to add -Wall, oh yes, plenty of warnings :) - the engine runs stable though, played quite some test games against Phalanx with no issues.
Ah ok. Since you have it built already, would you mind running a few games at very short time control (say "level 0 0:10 0.1")?

I wouldn't mind fixing it for LLVM (if it's not TOO much work), but it would suck if I spend a lot of time to fix it only to find out that it can't play short games (which is mostly what I am interested in).

I am interested in how Phalanx does as well. It's in my gauntlet already.

Thanks
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.
dusando
Posts: 27
Joined: Thu May 01, 2014 12:58 pm

Re: Linux/Mac engine gauntlet, cluster testing

Post by dusando »

matthewlai wrote:
dusando wrote:
matthewlai wrote:
dusando wrote:
matthewlai wrote: Pepito's code looks very old (GCC 2.x era), and didn't look like it will compile without many changes.
Pepito 1.59 compiled fine using GCC 4.8.3. In a linux system, it just needed to add -lm to the linking command in the makefile: $(CC) -lm $(CFLAGS) -o pepitox $(OBJECTS)
Ah It's probably LLVM-specific then. Do you get any warnings with "-Wall"?
Just tried to add -Wall, oh yes, plenty of warnings :) - the engine runs stable though, played quite some test games against Phalanx with no issues.
Ah ok. Since you have it built already, would you mind running a few games at very short time control (say "level 0 0:10 0.1")?

I wouldn't mind fixing it for LLVM (if it's not TOO much work), but it would suck if I spend a lot of time to fix it only to find out that it can't play short games (which is mostly what I am interested in).

I am interested in how Phalanx does as well. It's in my gauntlet already.

Thanks
Started a quick test match at 0:10 + 0.1, all looking almost ok so far, no time forfeits, but ... game 96 shows an issue:

Warning: pepito forfeits by invalid result claim: 1/2-1/2 {Drawn game}
Finished game 96 (pepito vs r70): 0-1 {Black wins by adjudication: Invalid result claim}
Score of r70 vs pepito: 32 - 47 - 20 [0.424] 99