Clearing hash table

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

mcostalba
Posts: 2684
Joined: Sat Jun 14, 2008 9:17 pm

Clearing hash table

Post by mcostalba »

I am playing some test matches of around 1000 games against Rybka 2.3.2 with the current development version of Stockfish.

I have noted already many times that SF starts well then after some hundreds games the score starts to drop.

Because this is a recurring pattern I am thinking that this could be due to the fact that _perhaps_ Rybka 2.3.2 does not clear the TT table after each match (I am using Fritz 11 GUI).

Stockfish always clears the table after a ucinewgame command, but before starting to test a version that does not do that I would like to ask if it is allowed by the specs or not.

If it is allowed I will try, otherwise I even don't start to test also if this means to give up some ELO points in the long run against 'tricky' engines.

Thanks
Sven
Posts: 4052
Joined: Thu May 15, 2008 9:57 pm
Location: Berlin, Germany
Full name: Sven Schüle

Re: Clearing hash table

Post by Sven »

mcostalba wrote:I am playing some test matches of around 1000 games against Rybka 2.3.2 with the current development version of Stockfish.

I have noted already many times that SF starts well then after some hundreds games the score starts to drop.

Because this is a recurring pattern I am thinking that this could be due to the fact that _perhaps_ Rybka 2.3.2 does not clear the TT table after each match (I am using Fritz 11 GUI).

Stockfish always clears the table after a ucinewgame command, but before starting to test a version that does not do that I would like to ask if it is allowed by the specs or not.

If it is allowed I will try, otherwise I even don't start to test also if this means to give up some ELO points in the long run against 'tricky' engines.

Thanks
It may be better to avoid that kind of problems by restarting both engines from scratch after each single game instead of playing N games in a row with the same program instances, so that games can become independent from each other. (Of course "learning", or any other mechanism that persistently transports data from one game to the next, should be switched off for the same reason.)

This of course would require a very tiny program startup time of each participating engine, otherwise you can't play many games within a short time interval.

But to answer your question directly: I'm pretty sure that there is no specification at all that tells you when and whether it is allowed to clean the hash table. I think it is simply up to you.

Sven