I'm very excited to announce the release of Ethereal8.60
Ethereal8.60 is the first version of Ethereal allowing SMP!
Link to the release on GitHub (Includes Win64 Binary)
Progress since last release (V8.37)
Code: Select all
Ethereal8.60 vs Ethereal8.37
4MB Hash @ 10s+.1s: 780 - 339 - 881 [0.610] 2000 (+ 78)
32MB Hash @ 60s+.6s: 2425 - 614 - 2961 [0.651] 6000 (+108)
Ethereal8.60SMP vs Ethereal8.60
Code: Select all
2Thread vs 1Thread : 322 - 200 - 478 [0.561] 1000 ( +43)
4Thread vs 1Thread : 339 - 157 - 504 [0.591] 1000 ( +64)
8Thread vs 1Thread : 391 - 126 - 483 [0.632] 1000 ( +94)
Too few games to give an exact formula for scaling, but I think
it is safe to say Ethereal is making use of the extra CPU time
Summary Of Changes
Code: Select all
Removed evaluation of ability to castle and have castled
Allocate more time on PV changes and score drops
Factor Depth into the LMR equation
Increase MG Tempo value by a factor of 4
Do LMR On positions that are in check
Tuned Late Move Pruning counts
Compute a aspiration window based on fluctuation of scores
Allow Beta Pruning (Parent Futility Pruning) up to D=8
Compute R value for LMR based on depth and eval
Evaluate Backwards pawns
Treat many in check positions the same as non check searches
Fixed a bug where depth went below zero
No longer scale down safety when there are no rooks on the board
More heavily scale down safety when there are no queens on the board
Do not allow LMR to descend right into qsearch
Apply a penalty for the queen being under attack
Don't apply a connected bonus to a backwards pawn
Texel Tuning using a depth 1 search instead of static eval
I would like to thank Lucas for his very clear implementation of SMP
in his engine Demolito. I used his implementation as a template for
how I would do it in Ethereal. They ended up being very different, but
are much the same at their core. From here I'll make my own tweaks to
improving the scaling of SMP
I'm hoping the changes, along with 4CPU, can push Ethereal over 3000
Andrew Grant