Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Hash Table size Limit if any

Author: Robert Hyatt

Date: 08:20:56 01/16/06

Go up one level in this thread


On January 16, 2006 at 00:43:10, Graham Banks wrote:

>On January 16, 2006 at 00:20:04, Robert Hyatt wrote:
>
>>On January 15, 2006 at 21:34:32, Joshua Lee wrote:
>>
>>>Hello,
>>>I wanted to know if anyone here is using more than 2GB for Hash Tables?
>>>Is there a known limit for Chessbase programs?
>>>
>>>Does anyone know the most Memory for Hash Tables Crafty will use?
>>
>>whatever you have.  On 32 bit machines, operating system limits often come into
>>play, limiting total memory to 2 gigs.  You can run this to 3 gigs if you work
>>at it. on 64 bit systems, they can be huge...
>>
>>
>>
>>
>>
>>>
>>>thankyou
>
>
>Is there not theoretically an optimum amount of hash for engines dependent upon
>the time control used.
>For example it would be disadvantageous to use too much hash at blitz time
>controls whereas it would be disadvantageous to use too little at long time
>controls?
>That's my understanding, but some tell me that it's a contentious issue.
>Hope I'm not opening a can of worms here!
>
>Graham.

There are subtle issues.

1.  If an engine periodically stomps thru the hash table clearing everything,
bigger hash takes longer to clear.  In blitz games, it is possible that clearing
the hash will take longer than the time alotted to do a quick search.  Not good.
 :)

2.  Big hash causes TLB thrashing since TLBs have finite size and greatly speed
up virtual-to-real address translations.  For example, the typical PC can access
memory in 150ns or less.  So long as the TLB is able to provide virtual to real
translations when asked to do so.  Otherwise on the PC you throw in extra memory
references to access the page tables to do this translation, and memory access
time can climb.  On an AMD opteron for example, a TLB miss can produce 4 extra
memory accesses, which is a killer.  The PC adds 1 or 2 extra accesses depending
on the page size the O/S uses.  That is also a killer.  My Xeons have 60 TLB
entries, the last opteron I used had 1024.  So there are lots of variables to
consider.

One good plan is to look at the time control you are going to play.  Then play
about 10 moves of the game with hash size set to 2X and repeat.  Once you
increase the hash size and the program doesn't search any quicker (time to some
particular move or depth is what you want to watch for) you know you have gone
past the optimal hash size for that time control.  Back up to the previous
setting and that is optimal for this hardware and specific time control.

Hope that helps...




This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.