Author: Frank Schneider
Date: 06:50:07 10/06/98
Go up one level in this thread
Hi John, On October 05, 1998 at 16:49:07, John Coffey wrote: >Like most chess programs, I have a data structure that represents the current >state of the board. Some programs have bitboards, but instead I use information >for each square. My data structure could easily grow into 300 to 500 bytes. > >I am just now starting to write my search routines. If I am in my routine >"SearchForWhite()" and it tries a move and then calls "SearchForBlack()" (These >names are hypothetical at this point) then it needs to pass the current state >of the board to "SearchForBlack()." > >Question: > >Is it more efficient to .... > >1. Only have one copy of the current state, and have "SearchForBlack()" >restore the board back to its previous state before returning to >"SearchforWhite()"? > >or > >2. "SearchForWhite" passes the whole data structure on the stack as a copy of >the original so that "SearchForBlack()" doesn't have to restore the board? > >John Coffey Gromit uses your method 2. It currently searches about 20K nps on K6/200 and the copying of the datastructures (about 1KB per move) takes 10-15% of total cpu-time. It may take more if you take into account the cache-effects. Just to give you an idea how expensive it roughly is. Frank
This page took 0.01 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.