Code: Select all
//hack to bypass 1 thread mcts
if (uci_threads == 1 && uci_mcts == true)
uci_threads = 2;
Moderator: Ras
Code: Select all
//hack to bypass 1 thread mcts
if (uci_threads == 1 && uci_mcts == true)
uci_threads = 2;
I didn't need to ask... It was fireniel5946 wrote: ↑Sat Jul 31, 2021 6:51 pm If the piece of code is really meant to use two threads even though one is requested, it is dishonest. Perhaps it could be called cheating since it would give the engine an advantage in single-threaded tournaments.
May I ask which engine it is from?
PS. A better solution would probably be to have two different builds. One which uses A/B and one which uses MCTS and has the minimum amount of threads set to two by default. That way there won't be any dishonesty.
Engine designs that use N+1 threads are common e.g. if one thread is a dedicated input thread that sleeps as long as there is no input to process, which is why such an input thread is not counted against threads in terms of UCI.
Carlos-CMCanavessi wrote: ↑Sat Jul 31, 2021 6:43 pm I saw this piece of code in an engine:
Now, is that really valid/honest? From a user's point of view, if I set 1 thread, I want the engine to use 1 thread, not 2.Code: Select all
//hack to bypass 1 thread mcts if (uci_threads == 1 && uci_mcts == true) uci_threads = 2;