Since the machine has 48 cores, we don't believe it is helpful for Komodo to use more than that number of threads (minus 1 or 2 for other things the computer does). Kai showed that it probably helps to use more than four threads on a four core machine, but it is unlikely to help on one with many cores since the benefit is much smaller while the cost (in speed per thread) is not. Actual tests show no meaningful elo difference for using extra threads beyond cores on a 32 core machine. With Komodo MCTS, it is definitely bad to use these extra "threads". Maybe Stockfish and other engines get some benefit from using more threads than cores, but I doubt it.
Jouni wrote: ↑Mon Jan 07, 2019 10:45 pm
Thanks for explanation. But how do You know, that Komodo then uses real cores and no virtual ones, if computer has HT on?
Only a very stupid OS would schedule two threads onto the same physical core, assuming almost all the physical cores are available.
Jouni wrote: ↑Mon Jan 07, 2019 10:45 pm
Thanks for explanation. But how do You know, that Komodo then uses real cores and no virtual ones, if computer has HT on?
It seems that the truth is somewhere between these two extreme possibilities. When the thread count goes beyond the core count, total NPS continues to climb, but nps per thread drops more rapidly than total NPS climbs. I'm not enough of a hardware expert to explain just why this is so, but perhaps with the lower thread count it tries to do one core per thread but is not always able to do so for technical reasons. It may well be that using 63 or 64 threads (out of 88 or 96 on a 44 or 48 core machine) may be slightly better for most engines than using either (cores-1) or (2*cores -2); my own tests on a 32 core machine showed roughly a tie score between using 31 or 47 threads for normal Komodo; for Komodo MCTS it is definitely bad to use more threads than cores on big machines.
Jouni wrote: ↑Mon Jan 07, 2019 10:45 pm
Thanks for explanation. But how do You know, that Komodo then uses real cores and no virtual ones, if computer has HT on?
Only a very stupid OS would schedule two threads onto the same physical core, assuming almost all the physical cores are available.
On my laptop, HT cannot be disabled.
So Win10 shows 8 cores,whatever I do.
If I choose any engine to use 4 "real" cores, it runs at 50%.
Only if HT can be disabled in the BIOS, can you allot actual cores.