2

When I use Stockfish, the "hashfull" value climbs up to 1000 and then stays there. I was wondering what this means.

The documentation says :

* hashfull <x> the hash is x permill full, the engine should send this info regularly

But this doesn't help me to understand what it means.

5
  • 1
    It means what it says, the engines transposition table where it stores some information about the search so far, is 1000 permill full, i.e. full. In practice it means you may consider giving the engine more hash memory to use. The transposition table being filled up means the search will continue somewhat less efficiently, although it will still work just fine.
    – koedem
    Jan 5, 2022 at 14:40
  • 3
    I don't understand why this question is still closed. It's a straightforward, answerable question about one parameter returned by engines using the universal chess interface. The close reason says "needs details or clarity." The only detail I could think to add is adding the UCI tag, but the question did have that tag, and someone removed it.
    – Edward
    Jan 5, 2022 at 15:53
  • @Edward, this question to me is more like a programming question. Not to bring offense, but the way this op asks the question leads me to think that the question should belong to Stack Overflow.
    – user26887
    Jan 6, 2022 at 14:11
  • 2
    @TobyHarnish I'm pretty sure this question would be offtopic on StackOverflow. The user is not asking about how to program something but rather how to interpret the output of a chess program. If there is a SE to ask this I would say it is here. Unless of course one argues this in general doesn't belong on a StackExchange page.
    – koedem
    Jan 6, 2022 at 17:35
  • Maybe "permill" is confusing since it means out of 1000, like percent means out of 100. It's a very rare word and this is the only time I've seen it in practice, where maybe it is influenced by UCI's creators' German background. en.wikipedia.org/wiki/Per_mille
    – qwr
    Sep 24, 2022 at 5:20

1 Answer 1

4

An engine's hash table is a data structure where the engine stores positions and evaluations which it already calculated.

The parameter hashfull tells what permille full the hash is, i.e. how full it is on a scale of 0-1000. Hashfull 0 means that the hash is empty, no data is being stored. Hashfull 1000 means that the hash is full, and no more data can be stored.

If the hash is always full, then the engine could perform better with a larger hash (if you have more memory available for this)

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.