Daniel Shawul wrote: ↑Sun Jan 05, 2020 5:40 pm
Michel wrote: ↑Sun Jan 05, 2020 1:01 pm
petero2 wrote:I modified this logic to make it never exceed the fixed depth limit and ran 8 threads vs 1 thread again at fixed depth 10. The result was +42.5 elo after 5536 games.
Thanks. Interesting! This points indeed to a bit of widening. But I would argue that the Elo difference is quite small for 3 thread doublings.
Also, this doesn't say that the widening is actually beneficial in timed search of course... Maybe the widening is just a necessary evil resulting from the choice of separate history tables to reduce contention (as you suggest).
So it means if someone decides to share a history table or refutation, the "widening effect" goes away -- like I what am observing in my engine.
It also means YBW/ABDADA may exhibit similar behavior not only SHT or Lazy.
I will try to reproduce Peter's results by using separate history tables ...
Ok I have made history and refutation tables thread-local now but it seems there is no change at least for depth=8 will test 14 later.
Code: Select all
Score of scorpio-sht-8-thread vs scorpio-sht-1-thread: 66 - 65 - 68 [0.503] 199
My changes are very simple: make the tables local by uncommenting static, and clear history tables for all threads at the start.
Code: Select all
/*static*/ CACHE_ALIGN int history[14][64];
/*static*/ CACHE_ALIGN MOVE refutation[14][64];
@Peter, if you can a test where you make these tables global (opposite of what i did) in the meantime, we can know for sure
it is coming from history and refutation being local ...
1 thread vs 8 threads is still running and scores -150 after 100 games.
@Ronald, can you do the same tests but this time constrain the multi-threaded searches to 1-core ?