user27793: One issue that has always been pulling my hair is how to configure different chess engines so that they compete with each other with maximum efficiency according to the speed of the processor that our machine has, it does not seem that the configuration they bring by default is recognized by the hardware we have since I observe many differences in ranges, especially in the 'hash'. I'm a Linux user but not an expert.
so i went to google ...
The following information is extracted from an article, the author says the following:
HT [KB] = 2.0 * PFreq [MHz] * t [s]
"Basically what this formula tells us is that to know the size of the hash we must multiply the speed of our processor by 2 and multiply it by the time in seconds that we have configured for each play. For example, if we are going to play a 10-minute game against the module for 40 movements (15 sec) and our processor is 3,000 Mhz, the result will be: (3,000 * 2) * 15 = 90000, which divided by 100 gives us 900 times what we will choose in the drop-down the hash size closest to this value: 1024 in our case."
But when I look at the configuration of the installed motors i got, I see that there are very large variations between one and the other, engines, and I wonder if that is a general rule for all cases, if so, then they should all have the same size, right?.
This is Greek to me, since every engine is coming with a particular configuration, if i apply this rule to all the engines what would be the difference?.
My machine data:
:~$ lscpu | grep name

Model name:          Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
:~$ lscpu | grep MHz
CPU MHz:             3727.453
CPU max MHz:         3900.0000
CPU min MHz:         400.0000
:~
I think some images can explain much better what i means by 'vaiations in the zise' of the memory/hash.

https://postimg.cc/XBKghFDB
https://postimg.cc/gLGMGNhH
Any clarifying information is appreciated. Thanks!

user-1: You know the mantra of optimization? You have to benchmark, at the end there is no other way. Stockfish developers faces such questions. And since ShashChess is a stockfish derivate, it has the "bench" command line flag. This is meant as a developer aid, so you have to dig into the source code, to use it properly, see https://github.com/amchess/ShashChess/blob/master/src/All/benchmark.cpp#L104.
For example if you want to test 64 MB of hash with 6 threads to depth 21, you would use:
./shashchess 64 6 21

If you want best performance, enable "huge pages" on your linux box first, this should mitigate or likely eradicate the counter intuitive cap on hash size.

27793: <p>One issue that has always been pulling my hair is how to configure different chess engines so that they compete with each other with maximum efficiency according to the speed of the processor that our machine has, it does not seem that the configuration they bring by default is recognized by the hardware we have since I observe many differences in ranges, especially in the 'hash'. I'm a Linux user but not an expert.</p>
<p>so i went to google ...</p>
<p>The following information is extracted from an article, the author says the following:</p>
<p>HT [KB] = 2.0 * PFreq [MHz] * t [s]</p>
<p>&quot;Basically what this formula tells us is that to know the size of the hash we must multiply the speed of our processor by 2 and multiply it by the time in seconds that we have configured for each play. For example, if we are going to play a 10-minute game against the module for 40 movements (15 sec) and our processor is 3,000 Mhz, the result will be: (3,000 * 2) * 15 = 90000, which divided by 100 gives us 900 times what we will choose in the drop-down the hash size closest to this value: 1024 in our case.&quot;</p>
<p>But when I look at the configuration of the installed motors i got, I see that there are very large variations between one and the other, engines, and I wonder if that is a general rule for all cases, if so, then they should all have the same size, right?.</p>
<p>This is Greek to me, since every engine is coming with a particular configuration, if i apply this rule to all the engines what would be the difference?.</p>
<p>My machine data:</p>
<pre><code>:~$ lscpu | grep name
</code></pre>
<p>Model name:          Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
:~$ lscpu | grep MHz
CPU MHz:             3727.453
CPU max MHz:         3900.0000
CPU min MHz:         400.0000
:~</p>
<p>I think some images can explain much better what i means by 'vaiations in the zise' of the memory/hash.</p>
<p><a href="https://i.stack.imgur.com/d7Ayz.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/d7Ayz.png" alt="enter image description here" /></a></p>
<p><a href="https://postimg.cc/XBKghFDB" rel="nofollow noreferrer">https://postimg.cc/XBKghFDB</a></p>
<p><a href="https://postimg.cc/gLGMGNhH" rel="nofollow noreferrer">https://postimg.cc/gLGMGNhH</a></p>
<p>Any clarifying information is appreciated. Thanks!</p>
 -1: <p>You know the mantra of optimization? You have to benchmark, at the end there is no other way. Stockfish developers faces such questions. And since ShashChess is a stockfish derivate, it has the &quot;bench&quot; command line flag. This is meant as a developer aid, so you have to dig into the source code, to use it properly, see <a href="https://github.com/amchess/ShashChess/blob/master/src/All/benchmark.cpp#L104" rel="nofollow noreferrer">https://github.com/amchess/ShashChess/blob/master/src/All/benchmark.cpp#L104</a>.
For example if you want to test 64 MB of hash with 6 threads to depth 21, you would use:</p>
<pre><code>./shashchess 64 6 21
</code></pre>
<p>If you want best performance, enable &quot;huge pages&quot; on your linux box first, this should mitigate or likely eradicate the counter intuitive cap on hash size.</p>
