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.