ernest wrote:I would like to update the data I have concerning hashtable feeding, in most up-to-date programs.
1.
Hashtable entry size: usually 16 bytes (exceptions I know: Rybka/8 bytes, ChessTiger/10 bytes)?
2.
Ratio "number of hashtable entries" per "number of nodes, as reported" that is, how many of the nodes (as reported by the program "the usual way", not the obfuscated way

) lead to a hash table entry.
This may depend heavily on the program (what it does in quiescence, in null move, ...) but I have this reminiscence of 10%, which may be completely wrong with the latest programs.
Can somebody help me?
12 bytes is likely optimal. you need to store the following:
(1) "lock" (part of hash signature you don't use to address the entry0
(2) draft (remaining depth
(3) type of entry (3 types, EXACT, LOWER, UPPER)
(4) score (depends on your score range and resolution (centipawns, millipawns, etc).
(5) best move (depends on how you store moves. Most compact move is 8 bits. Most use significantly more for ease of extraction.
I use 16 bytes to store the entire 64 bit hash signature.
For proper size, it is more complex. You need one entry for most nodes that you will do a lookup for. In Crafty, where I do not hash the q-search, that means that total nodes / 10 is a good estimate since something like 75-80% of all nodes searched are in the q-search, and many are duplicated as the search iterates... If a program probes in the q-search then you might want at least 75% of the total nodes searched for the number of hash entries, since most everything gets stored.
Some programs like Crafty don't store in the q-search. At one point Junior did not store the last ply of the normal search. Others store everything. Best bet is to test with different sizes to tune to optimal time to a fixed depth completion for a wide variety of positions.