From: Jonathan Calovski Date: Sat, 31 Dec 2016 15:09:22 +0000 (+1100) Subject: Tweak best thread selection logic X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=1052ce74f65479e5d583d349227dc101f8483a85;ds=sidebyside Tweak best thread selection logic STC 7 threads: LLR: 2.96 (-2.94,2.94) [0.00,5.00] Total: 26881 W: 4161 L: 3941 D: 18779 http://tests.stockfishchess.org/tests/view/58667a830ebc5903140c632f LTC 7 threads: LLR: 2.95 (-2.94,2.94) [0.00,5.00] Total: 22988 W: 2767 L: 2583 D: 17638 http://tests.stockfishchess.org/tests/view/586722690ebc5903140c636d bench: 5468995 --- diff --git a/src/search.cpp b/src/search.cpp index 33870913..a46c4462 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -312,9 +312,14 @@ void MainThread::search() { && rootMoves[0].pv[0] != MOVE_NONE) { for (Thread* th : Threads) - if ( th->completedDepth > bestThread->completedDepth - && th->rootMoves[0].score > bestThread->rootMoves[0].score) + { + Depth depthDiff = th->completedDepth - bestThread->completedDepth; + Value scoreDiff = th->rootMoves[0].score - bestThread->rootMoves[0].score; + + if ( (depthDiff > 0 && scoreDiff >= 0) + || (scoreDiff > 0 && depthDiff >= 0)) bestThread = th; + } } previousScore = bestThread->rootMoves[0].score;