dynamic hash













dynamic hash

dynamic hash is a feature that automatically sets the optimal hash table size for Cyclone

with computer systems becoming so incredibly powerful...fast processors, multiple CPUs, multiple cores, loads of RAM, etc., the average nodes per second that can be realized by chess engines is growing

if given several critical 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 as follows:

time per move (secs) * nodes per sec * hash entry size (in bytes)

for ex:

if time per move = 60 sec, nps = 700,000, and hash table entry = 16 bytes
(16 bytes being typical for many chess engines)
60 secs x 700,000 nps x 16 bytes = 640 MB

using cyclone's dynamic hash feature requires some specific information:

the search speed (in nodes per second) that it can expect to achieve on the system it will be running on, and the time control (in seconds per move) for the game it will be playing

an easy way to determine this for the system currently being used, is to run Cyclone from the command prompt, and type 'go xxx" (xxx can be anything)...occasionally the NPS achieved will be displayed in the UCI info line

enter this NPS value for the system Cyclone is running on, as the 'nodes per second' configuration parameter via your GUI's UCI option configuration screen (in Arena, choose engines, cyclone, configure)

then, enter the seconds per move for the time control being used as the 'seconds per move' parameter

for ex: if the time control is 40/4, that is 6 seconds per move. you should enter 6 as the 'seconds per move' parameter via your GUI's UCI option configuration screen

cyclone will then calculate and set the optimal hash size for the speed of the machine and the game being played (calculated to the nearest power of 2 value)