Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Generating endgame tablebases

Author: Simon Finn

Date: 02:20:34 10/11/01

Go up one level in this thread


On October 11, 2001 at 00:43:57, Slater Wold wrote:

>On October 11, 2001 at 00:27:17, Robert Hyatt wrote:
>
>>On October 10, 2001 at 22:55:27, Slater Wold wrote:

[snip]

>>>Who is compiling them now?
>>
>>Only Eugene so far as I know...
>
>On what?  And how is he doing the 6 pieces?  I thought you needed a 64-bit OS
>and a LOT of memory and HD space.

You need 64-bit file addressing, but you don't need an enormous amount
of memory if you have good I/O bandwidth (and enough time).

The Nalimov encoding splits each database into a large number of subspaces
defined by the position of the two kings. In each major iteration, all the
values in a single Nalimov subspace can be computed using the values from
at most 9 other subspaces (kings don't move very far!). This means that
you can write an algorithm that needs only 10 Nalimov subspaces (plus some
smaller subspaces to deal with conversions) to be in memory simultaneously.
Since (for 6 man databases) each Nalimov subspace contains fewer than 2^24
positions, this should all fit nicely into a 0.5GB machine.

If you iterate through the subspaces in the right order, you only need
to read at most 3 (rather than 9) opponent-to-move subspaces when you
move on to compute the next player-to-move subspace. You can also
read-ahead to overlap the I/O with the computation. Nevertheless,
the algorithm would almost certainly be I/O bound - each major iteration
reads the entire database (somewhat less than) 3 times and writes it
out once.

Simon





This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.