I'm using SCID with the latest Stockfish 7 on my Ubuntu PC. When I'm analyzing a position, I can see the depth counter on the left. After seeing that the move, Nf3 say, get to depth 25, I go to play the move. I would expect that when the engine is analyzing this new position, it would start at depth 25, but this is not the case. The engine needs to work up to there from the first observed depth considering the exponential increase in time-computing depth, around 14 or so.

Am I misinterpreting the depth counts or is there some technical reason as to why this is happening? One reason I thought, might be because if I hadn't chosen Nf3, and chose one of the worst moves, then there would be many missing branches due to pruning between candidate moves. This would mean evaluating the move using previous information would save little time since few variations have been examined.

  • I was trying to answer your question but stopped. I don't think I understand your second paragraph. The engine always assume best-play, it believed the best move was Nf3. Can you explain "using previous information would save little time"?
    – SmallChess
    Jun 20, 2016 at 1:12
  • Also, the title is a bit misleading for the question. Do you mean "why Stockfish didn't save searched branches into something like a hash table?"
    – SmallChess
    Jun 20, 2016 at 1:13
  • If you mean why Stockfish didn't save the searched results - Stockfish does save evaluations in a hash table. Does that answer your question?
    – SmallChess
    Jun 20, 2016 at 1:14
  • what part of the second paragraph don't you understand? Or all of it?
    – Qwertford
    Jun 20, 2016 at 1:22
  • 1
    My understnading is that you were asking why Stockfish didn't save evaluated moves for further analysis. Am I right?
    – SmallChess
    Jun 20, 2016 at 1:23

1 Answer 1


I think the answer is that, although the engine has indeed calculated to depth 25, it has certainly not been able to store anywhere near the amount of the tree it examined during that search, no matter the memory allocated to the transposition table (hashtable). A lot of that tree (even of the pruned tree) is discarded as the depth-25 calculation continues, and so it pretty much has to be recreated after each move.

You may object that, almost certainly there must be a depth-24 value for the position after Nf3 stored in the hashtable left over from the previous depth-25 calculation. But that kind of proves the point -- the hashtable only stores a single value and a single "principle variation" leading to that value, not the whole depth-24 tree from which that principle variation was determined, by any means.

  • Upvoted because I believe you to be correct - but any documentation you might be able to link to?
    – maxwell
    Jul 15, 2016 at 3:39
  • @Maxwell Just knowledge of how chess is programmed: chessprogramming.wikispaces.com
    – Jeff Y
    Jul 21, 2016 at 14:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.