27 November 2017

Improve Engine Software - Tablebases

After the previous post in this series on improving my engine infrastructure, Improve Engine Hardware - High Performance, what's next? If I go back to the first post in the series, Improve Engine Software (October 2017), the next bullet is:-

  • Link engine(s) directly to tablebase

Wikipedia gives an overview of the technology in Endgame tablebase. The three evolutions of tablebases to date have been:-

  • Nalimov - six-piece (~2000)
  • Lomonosov - seven-piece (2012)
  • Syzygy - six-piece optimized (2013)

The Houdini 6 User's Manual has two sections covering tablebases. They discuss technical considerations for downloading the tablebases, installing them, and accessing them from the engine.

The same article by Albert Silver that I referenced in the 'High Performance' post, Building the ultimate chess machine (chessbase.com), gives a useful tip on the hardware (certain comments are also relevant):-

The choice of two SSDs for storage as opposed to a single centralized one is deliberate. One SSD should be reserved for the six-piece Syzygy tablebases and not be mixed with the one used for the operating system and databases. It will be consulted non-stop by engines in analysis, and it would be a mistake to place it on a drive that is also being used for other purposes, since it could lead to unnecessary slowdowns.

What's the future of tablebases? Seven-piece Lomonsov technology hasn't yet arrived for the hobbyist, but it can't be too far off. A back-of-the-envelope calculation tells me that there is a difference of (roughly) two orders of magnitude in complexity (x 100) between an n-piece and an n+1-piece tablebase. An eight-piece tablebase will arrive when advances in processing and storage support it. Beyond that, I wouldn't even begin to guess.

No comments: