Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Nodes per second

Author: Robert Hyatt

Date: 10:00:56 06/24/98

Go up one level in this thread


On June 24, 1998 at 11:44:20, Don Dailey wrote:

>On June 24, 1998 at 09:47:15, Robert Hyatt wrote:
>
>>On June 24, 1998 at 04:08:23, Inmann Werner wrote:
>>
>>>What are nodes per second.
>>>I count, how often alpha-beta is called in a search, and taht are my nodes.
>>>Is this correct, or should I count the generated moves?
>>>It is not really important, but everybody speaks about, how many nps a program
>>>makes, and if everybody defines nodes different, all compares a nonsense.
>>>On the other hand, nps only give sense, if there is no computer thinking on
>>>opponents time!?
>>>
>>>Werner
>>
>>
>>
>>that's what most of us are doing...  and your count should be
>>comparable to ours... just add nodes++; to the top of search()
>>and quiesce();
>
>Technically (or sematically) this is correct, but you need to
>be careful.   I count how many moves
>are actually executed in a search (or in my program calls to
>make_move().    I think this is more accurate.
>
>Depending on how your program is structured counting calls to
>alpha-beta could give you the wrong answer.   An early program
>of mine would sometimes do a static evaluation without making
>this final call, using your method would have seriously deflated
>the node counts.
>
>Really though this is an issue of semantics.  But a node is a
>new position visited and not an issue of how you structure
>your recursion.   I would guess that by far most programs this
>would work the same.
>
>- Don


I miss a few here, because in the basic (full-width) search, I don't
allow illegal moves, because that screws up the null-move search.  In
such a case, I make the move, discover my king is in check, and unmake
the move without ever "counting" it.  Doesn't happen a huge number of
times, except when things are tactical.  In Quiesce() I don't do this,
so it is always counting MakeMove() calls, effectively.

I can never make a move, and call Evaluate() without counting the
node, however...  but I can make some moves and they never get counted.
Note that I only generate legal moves when in check, so I don't discard
(and not count) dozens of moves each time that happens.



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.