Hi Elric (or Ward?)-
yes, absolutely...
optimal hash size is directly proportional to the specific time control being used
(and the speed of the system)
here's a formula which I use that may be of interest...and my short explanation
if given several pieces of information (nodes per second, time per move, and hash table entry size),
an optimal hash size (amount of memory allocated for the hash table) for can be calculated
time per move (secs) * nodes per sec * hash entry size (in bytes)
for ex:
if the time control is 40/4, that is 6 seconds per move
so time per move = 6 sec
nps = 700,000
hash table entry = 16 bytes (16 bytes is typical for many chess engines but can vary)
we have:
6 secs x 700,000 nps x 16 bytes = 67200000 bytes
67200000 bytes = 65625 kB
and
65625 kB = 64 MB
thus, hash memory should not fill up at that time control, if hash = 64 MB
i.e. this is the precise amount of memory needed (by this particular system at this particular TC)
to store all hash table info generated during a 6 sec. move
if the hash does ever become full, the performance of the engine may decrease (albeit a very small amount),
as the engine must then swap/replace hash entries instead of simply adding
and, it has been fairly reliably shown that performance can also be degraded if way too much hash is allocated...
Norm
Last edited by kranium on 30th November 2011, 4:06 pm; edited 2 times in total