Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: EGTB generation with 1 bit per position?

Author: Eugene Nalimov

Date: 14:58:33 03/25/03

Go up one level in this thread


On March 25, 2003 at 17:30:52, martin fierz wrote:

>i computed some checkers endgame databases with retrograde analysis based on the
>paper by the chinook team. for larger databases, i have a memory size problem;
>specially as win32 only allows a process to use 2GB.
>i once heard that it was possible to compute a win/loss/draw endgame database
>using only 1 bit per position as opposed to 2 bits as i was using up to now (and
>like in the chinook paper).
>
>does someone here know more about this? i'm looking either for an explanation
>for dummies, or for a reference to a paper.
>
>thanks in advance
>  martin

Actually, you can force Windows NT/2k/XP to give your application 3Gb, not 2Gb.
Search for /3Gb switch at Microsoft web site. Application should be "clean",
i.e. it should not assume that high pointer bit is always zero. For such
applications you should  specify linker flag /LARGEADDRESSAWARE.

One more note: you probably will not be able to allocate 3Gb in one chunk, but
you'll be able to allocate 30 100Mb chunks.

Of course you can use Win64 where you don't need those tricks :-)

And now returning to the original question: with easily "reversable" index
function you need *random* access not to two bitmaps, but only to one. This way
you can generate first bitmap in memory, flush it to disk, generate second
bitmap, and then sequently walk through first bitmap using small (several
megabytes) buffer.

Thanks,
Eugene



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.