Author: Jesper Antonsson
Date: 07:38:04 12/25/01
Go up one level in this thread
Generally, you want to use as much memory as possible without making the computer page memory to disk. This is because even if the table doesn't get especially full, it's likely that some entries (information) will be overwritten (see "the birthday paradox"). As memory doesn't come for free, you got to have a limit, though. Perhaps keeping the table from getting more than half full is a good rule of thumb, so lets do a small calculation to see in what ballpark that puts us: Lets say a program uses 64 bit (8 bytes) entries in the hash table, and that it's speed is N nodes per second. Furthermore, we have a setting that makes it think on average T seconds per move. Then you would need somewhere around 8*N*T*2 bytes to keep the table from getting more than half full. If N is 500 KNps and T is 180 s, you'd like 8*500000*180*2 = 1,34 gigabytes. Note that this is on the conservative side, as collisions will occur, and the nps includes nodes already in hash and so forth, we may perhaps make do with half that or less. But generally, allocate as much memory you are willing to spare for hashing. Of course, you can experiment with your program: Give it 32 Mbyte and let it think to a certain depth on a selection of positions. Increase memory by a factor of two until you run out of it or the time taken doesn't change much. Then you'll get a better estimate than these theoretical guesses can provide. :-) On December 25, 2001 at 09:39:53, Brian Katz wrote: >What is the proper method for setting Hash Tables in Chessbase programs. >I have read that for Fritz 5 the proper Hash Table setting is as follows: > >2 x (your processor speed) x (avg. seconds per move) >of course in Fritz 5 you could set the exact number such as (16,384)bytes >Of course, the available RAM you have is limits the your proper maximum setting, >as severe hard drive activity will take place if your computer does not have >enough RAM if your Hash Table setting is too high. >Since Fritz 6 and Fritz 7 is set in MB you would just divide this formula by >1000. >I have also been told, based on an actual game of approx. 50 moves, that you >should subtract the first 10 or 15 moves, since the opening moves are played >instantly, and shouldn't be a factor divided into the time control. >A five minute game (300 seconds) Supposedly you would divide 35-40 moves,instead >of 50 into 300 seconds and get a figure, multiply that by 2x(processor speed) >and divide by 1000. >Of course average time per move settings give you the exact seconds per move. > >Is 2x(processor speed)x average seconds per move /1000 still the accepted Hash >Table setting method? >Any suggestions would be greatly appreciated.
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.