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.