Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: calling subroutines

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.