In my previous post in this series, Chess Engines : Fishtest, I asked, 'How does this work in practice?' A page on Stockfishchess.org, Get Involved - Stockfish - Open Source Chess Engine -- 'Whether you are a programming wizard or just a fan, there's something you can do to help make Stockfish even better' -- explains its three-pronged approach:-
- Volunteer Your Computer
- Write Code
This is a discussion group for developers and testers of Stockfish chess engine.
If you're interested in chess engines, you're probably aware of the ongoing competition TCEC Season 8. A few months ago I wrote a post giving Preliminary Info. The Stockfish entry encountered a glitch a few weeks into the event, described in Press release regarding the Stockfish case in TCEC Stage 3:-
TCEC Press release, 11 October 2015 : Stockfish has submitted for Stage 3 of TCEC a not fully stable version, which contains a few bugs related to the new "lazy-smp" code. This has prevented the engine to finish two of the four games played so far in the event, instead losing these games on time.
The phrase 'Lazy SMP' didn't mean anything to me, so I looked on chessprogramming.wikispaces.com:-
Parallel Search Parallel Search, also known as Multithreaded Search or SMP Search, is a way to increase search speed by using additional processors. [...] Shared Hash Table : This technique is a very simple approach to SMP. [...] Lazy SMP : Recent improvements [...]
Got it, thanks. Lazy SMP is a table technique to implement parallel search and a new version went awry during the TCEC event. The details can be found in the FishCooking forum, e.g.
- 6 October: Binary for TCEC w/ Lazy SMP 'If we are going to use lazy SMP in the next TCEC stage...', and
- 9 October: TCEC ttime loss vs Gull in drawn ending 'I warned about time losses. But I also recommended we use the lazy SMP...'
The entire sequence of events is documented on that forum. If you're interested in that sort of thing (aren't we all?), it provides an advanced education in creating modern chess engines and in open source software development.