Author: Dieter Buerssner
Date: 14:22:33 08/06/02
Go up one level in this thread
On August 06, 2002 at 03:28:04, Georg v. Zimmermann wrote: >Hi, > >suggestion for a new engine pseudo-standart command like "hash": "mem". >For example "mem 64" should tell the engine to use 64MB in total. Which means if >it uses 16MB for internal structures, 2MB for tablebase stuff, 2MB for learning, >it has 44MB left for pawn hash and normal hash table which it might distribute >as it wishes. > >Advantages: >- easier for users >- fairer engine-matches, everyone gets the same ammount of memory, eg. you get >rewarded for using small internal structure. Some time ago such a command has been discussed in the chess engines mailing list. I prefer to have it easier. Have one mem size for any adjustable internal tables besides TBs that are of possibly significant size and unadjustable tables that are of significant size. But still have another size for TBs. When I call my engine for analysis, I typically have (when dedicating my small memory old computer) 40 MBs for "mem" (besides the code space and often accessed internal data used). I use this for hash in a middlegame pos. In an endgame pos, I would use perhaps 30M. In both cases, I would give 2 M TB cache. In the first case, this would never be accessed. In the second case, it would be accessed, and also the internal compression tables, which make a bit more (with my few 5-men TBs installed). Then I still get about 7 M for OS-cache, which can speed up endgame analysis significantly (TB positions are cached there in compressed form, and for my conditions, this typically performs better than giving a bigger internal TB cache). So, I believe 2 memory sizes would be preferable. Some other thoughts about the "base memory usage" of the engine. Say my engine includes a lot of "tools": for creating/manipulating books/PGN files/whatever. If this needs 1MB - do I have to count it? For (say) an engine match, that code/data won't be used - and can (and in tight memory situations will) be swapped out. No negative consequences at all. Should we count this unused memory? Not allways, using more RAM than available is bad - otherwise, we would not need virtual memory. Say, the engine has some internal table for "learn stuff" - and this must be resized during a game. Should such a "mem" command really force the engine to now make the hash tables a bit smaller, and clear them by doing this? I believe, perfect fairness is not possible here - and one should have a more pragmatic and less strict solution. Regards, Dieter
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.