So there is a bug AND widening wow. I rerun my fixed-depth constrained matche again after fixing the bug,Michel wrote: ↑Sun Jan 05, 2020 9:58 pmWow. So it seems there is indeed substantial widening in SF. As I understand it SF is actually using SHT now (like Toga II) and not Lazy as it is commonly understood.petero2 wrote: ↑Sun Jan 05, 2020 9:39 pmYes it is easy to verify using print statements that the depth limit is not respected in fixed depth searches for threads other than the main thread. Fixing this is easy though. Just remove "&& mainThread".Michel wrote: ↑Sun Jan 05, 2020 12:52 pmPerhaps this is the culprit? If I read it correctly then the depth limit is only respected in mainThread.Code: Select all
// Iterative deepening loop until requested to stop or the target depth is reached while ( (rootDepth += ONE_PLY) < DEPTH_MAX && !Threads.stop && !(Limits.depth && mainThread && rootDepth / ONE_PLY > Limits.depth))
With latest Stockfish from git I get +314 elo for 8 threads vs 1 thread at fixed depth 8. After fixing the above problem I instead get +251 elo. At fixed depth 14 I get +172 elo:Code: Select all
d elo win draw loss 8+ 314 3501 654 301 8 251 2266 576 314 14 172 1617 1380 169
It appears the amount of widening varies wildly from engine to engine. But there does not seem to be a lot of freedom in implementing SHT. So perhaps in the end there is a mystery....
and now I get acceptable results that can be explained by hyper-threading i think.
Code: Select all
Score of stockfish-8-thread vs stockfish-1-thread: 852 - 695 - 533 [0.538] 2080
Code: Select all
Score of stockfish-8-thread vs stockfish-1-thread: 1113 - 467 - 497 [0.656] 2077
So if Stockfish is now SHT, it means there is nothing unique about LazySMP then.
Also, the fact that you don't get that much benefit with the constrained match BUT you do get significant benefit
when threads are running in parallel (non-constrained match) suggests dynamic tables being the culprit.
Edit My result after the fix is not as great as Peter's but it is still there
Code: Select all
Score of stockfish-8-thread vs stockfish-1-thread: 3629 - 1130 - 1380 [0.704] 6139
Stockfish git hash I used is from Jul 14, 2019: commit 7090d2561ae9ce3803bbc04319c4c93f