Adjust reductions based on the number of threads
authorJoost VandeVondele <Joost.VandeVondele@gmail.com>
Wed, 25 Sep 2019 19:24:05 +0000 (21:24 +0200)
committerStéphane Nicolet <cassio@free.fr>
Tue, 1 Oct 2019 23:43:02 +0000 (01:43 +0200)
commit005ad170c1dccdcd4ce73074302828ea22628b70
treedf097e85aa7de7b6a7ae6ed8bff0831ebc60bb22
parentabd4400c874ab178d04c08d3668f3843aece114e
Adjust reductions based on the number of threads

In lazySMP it makes sense to prune a little more, as multiple threads
search wider. We thus increase the prefactor of the reductions slowly
as a function of the threads. The prefactor of the log(threads) term
is a parameter, this pull request uses 1/2 after testing.

passed STC @ 8threads:
LLR: 2.96 (-2.94,2.94) [0.50,4.50]
Total: 118125 W: 23151 L: 22462 D: 72512
http://tests.stockfishchess.org/tests/view/5d8bbf4d0ebc59509180f217

passed LTC @ 8threads:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 67546 W: 10630 L: 10279 D: 46637
http://tests.stockfishchess.org/tests/view/5d8c463b0ebc5950918167e8

passed ~LTC @ 14threads:
LLR: 2.95 (-2.94,2.94) [0.00,3.50]
Total: 74271 W: 12421 L: 12040 D: 49810
http://tests.stockfishchess.org/tests/view/5d8db1f50ebc590f3beb24ef

Note:
A larger prefactor (1) passed similar tests at STC and LTC (8 threads),
while a very large one (2) passed STC quickly but failed LTC (8 threads).

For the single-threaded case there is no functional change.

Closes https://github.com/official-stockfish/Stockfish/pull/2337

Bench: 4088701

Fixup: remove redundant code.
src/main.cpp
src/search.cpp
src/thread.cpp