Dev Builds » 20100220-1736

You are viewing an old NCM Stockfish dev build test. You may find the most recent dev build tests using Stockfish 15 as the baseline here.

Use this dev build

NCM plays each Stockfish dev build 20,000 times against Stockfish 7. This yields an approximate Elo difference and establishes confidence in the strength of the dev builds.

Summary

Host Duration Avg Base NPS Games Wins Losses Draws Elo

Test Detail

ID Host Started (UTC) Duration Base NPS Games Wins Losses Draws Elo CLI PGN

Commit

Commit ID 8b99e9456241706b3d61fd6b165e57d14618e568
Author Marco Costalba
Date 2010-02-20 17:36:07 UTC
Revert small state change optimization in idle_loop() Joona says: 1. We should not be afraid of "AllThreadsShouldExit" flag. Because when this is set to true we _must_not_ be searching (= All splits must have been undone). And if we are not searching it's impossible that some other thread could give us work to do. So setting state to THREAD_AVAILABLE doesn't do any harm. If you want to add check for this, you could do it like this: if (threads[threadID].state == THREAD_WORKISWAITING) { + assert(!AllThreadsShouldExit) threads[threadID].state = THREAD_SEARCHING; 2a. If waitSp->cpus == 0, setting state to THREAD_AVAILABLE makes no harm either, because helpful master concept dictates that _only_ our own slave can book us. If we don't have any slaves, noone has the right to book us. 2b. If point (2a) is not correct then your extra check only adds extra race: In smp code checking for waitSp->cpus > 0 is not enough. It's possible that our slave immediately exits and another thread books us as a slave when our state is still THREAD_AVAILABLE. So instead of adding extra level of security we have just introduced extra race. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
Copyright 2011–2026 Next Chess Move LLC