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.