Improve smp performance for high number of threads
authorJoona Kiiski <joona.kiiski@gmail.com>
Sat, 14 Feb 2015 20:46:00 +0000 (20:46 +0000)
committerJoona Kiiski <joona.kiiski@gmail.com>
Mon, 16 Feb 2015 20:36:13 +0000 (20:36 +0000)
commitd65f75c1532536f11a2dfbc0263c55e1beb88c2b
treee0016206c5c1df2e5a37dd28b0dffb254fe801a5
parentf8f5dcbb682830a66a37f68f3c192bbbfc84a33a
Improve smp performance for high number of threads

Balance threads between split points.

There are huge differences between different machines and autopurging makes it very difficult to measure the improvement in fishtest, but the following was recorded for 16 threads at 15+0.05:

    For Bravone (1000 games): 0 ELO
    For Glinscott (1000 games): +20 ELO
    For bKingUs (1000 games): +50 ELO
    For fastGM (1500 games): +50 ELO

The change was regression for no one, and a big improvement for some, so it should be fine to commit it.
Also for 8 threads at 15+0.05 we measured a statistically significant improvement:
ELO: 6.19 +-3.9 (95%) LOS: 99.9%
Total: 10325 W: 1824 L: 1640 D: 6861

Finally it was verified that there was no (significant) regression for

4 threads:
ELO: 0.09 +-2.8 (95%) LOS: 52.4%
Total: 19908 W: 3422 L: 3417 D: 13069

2 threads:
ELO: 0.38 +-3.0 (95%) LOS: 60.0%
Total: 19044 W: 3480 L: 3459 D: 12105

1 thread:
ELO: -1.27 +-2.1 (95%) LOS: 12.3%
Total: 40000 W: 7829 L: 7975 D: 24196

Resolves #258
src/search.cpp
src/thread.cpp
src/thread.h