v1.4.0
This release makes the engine multithreaded, using the LazySMP approach, by spawning helper threads with different move ordering. It also refactors the hash table to have smaller entries, directly stored as atomics with 16 bytes, allowing fast, native concurrency. Futility Pruning was also introduced as a new technique, significantly reducing time to depth in some positions.
This makes Camel about 100 Elo stronger in fast time controls, even without threading enabled. The gains with multiple threads will be less deterministic due to the nature of the approach used.
Changelog
- Support the
Threads
UCI option - Search with multiple threads using LazySMP
- Prune moves with Extended Futility Pruning when depth <= 2
- Refactor the data layout of hash table entries
- Refactor check detection/evasion
Estimated Strength
- Lichess: 2270 (Bullet), 2200 (Blitz), 2290 (Rapid)
- CCRL: 2133 (Blitz)
- Against v1.3.1: ✅ Elo difference: 89.20 +/- 20.97