What is the transposition table (hash), and how much should I set?
The transposition table's main role is this: during search, the engine records information about positions (such as scores) into the table. When the search later meets a position that is already in the table, it can directly retrieve the stored result and save time. Current multithreading algorithms are also implemented on top of a shared transposition table.
For a more technical explanation of the transposition table, watch this video: The Pikafish author explains the transposition table (in Chinese, on Bilibili)
In theory, as long as the machine has spare RAM, a larger transposition table is better for analyzing positions, but in practice it is best not to make it too large.
Also, once the transposition table reaches the order of a few hundred MB or a few GB, making it larger has only a very slight effect on playing strength. A few GB is generally recommended.
Shark GUI currently displays hashfull (abbreviated HF), which represents the proportion of entries in the transposition table that have been replaced or queried. It is not how full the table is, because whether during analysis or after the engine has played a move, the table is always full, unless you clear the hash or reload the engine.
