From: Joost VandeVondele Date: Sun, 13 Nov 2016 10:08:30 +0000 (+0100) Subject: More accurate 'go nodes' searches at low count X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=cddc8d4546ab0d7b63081cb75cbca66b9c68628b More accurate 'go nodes' searches at low count Makes the actual number of nodes searched match closely the number of nodes requested, by increasing the frequency of checking the number of nodes searched at low node count. All other searches retain the default checking frequency of once per 4096 nodes, and are thus unaffected. Passed STC as non-regression LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 26643 W: 4766 L: 4655 D: 17222 No functional change. --- diff --git a/src/search.cpp b/src/search.cpp index a74e3f25..5dff67f2 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -573,9 +573,13 @@ namespace { if (thisThread->resetCalls.load(std::memory_order_relaxed)) { thisThread->resetCalls = false; - thisThread->callsCnt = 0; + // At low node count increase the checking rate to about 0.1% of nodes + // otherwise use a default value. + thisThread->callsCnt = Limits.nodes ? std::min(4096LL, Limits.nodes / 1024) + : 4096; } - if (++thisThread->callsCnt > 4096) + + if (--thisThread->callsCnt <= 0) { for (Thread* th : Threads) th->resetCalls = true;