Don't split if reduced depth is below min_split_depth
authorMarco Costalba <mcostalba@gmail.com>
Sun, 22 Apr 2012 11:59:35 +0000 (12:59 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 29 Apr 2012 22:28:07 +0000 (23:28 +0100)
It seems to increase SMP performances. To note that
this patch goes in the opposite direction of "Active
reparenting" where we try to reparent an idle slave
as soon as possible. Instead here we prefer to keep
it idle instead of splitting on a shallow / near the
leaves node.

After 11550 games on a QUAD (4 threads) at 15"+0.05
Mod vs Orig 1972 - 1752 - 7826 ELO +6 (+-3.6)

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/search.cpp

index 55bf52b29cd28e7db664c3c47b432d9a44fd86b3..be6e360af337c5b4e527b99c67a58fc40ee8d659 100644 (file)
@@ -1052,6 +1052,7 @@ split_point_start: // At split points actual search starts from here
       // Step 19. Check for split
       if (   !SpNode
           &&  depth >= Threads.min_split_depth()
+          &&  depth - reduction<PvNode>(depth, moveCount) >= Threads.min_split_depth()
           &&  bestValue < beta
           &&  Threads.available_slave_exists(thisThread)
           && !Signals.stop