Author: Christophe Theron
Date: 09:44:38 10/10/03
Go up one level in this thread
On October 10, 2003 at 01:18:52, Uri Blass wrote:
>On October 09, 2003 at 22:00:56, Christophe Theron wrote:
>
>>On October 09, 2003 at 20:28:38, Dave Gomboc wrote:
>>
>>>On October 07, 2003 at 20:41:45, Christophe Theron wrote:
>>>
>>>>Anyway, from now on it does not make any sense anymore to look at the NPS and
>>>>conclude anything about the amount of knowledge in the program.
>>>
>>>Has it ever?
>>>
>>>Dave
>>
>>
>>
>>No, it has never made any sense. But it has never been understood, so we will
>>have to repeat it forever.
>>
>>
>>
>> Christophe
>
>Some questions:
>
>1)Do you use the same definition of np like old tiger?
>
>(do you count only legal positions?,do you count null moves?)
>
>I think that programmers who give number of nodes per second should also give
>exact definition of nodes(otherwise I see no reason to give that information)
I'm using the same definition as before.
I count all the moves that the program makes (making a move means actually
moving the pieces in the internal board). A null move is a move (no piece is
moved but there are other internal variables, for example side to move, hash
key, that are actually updated). All the moves made after a null move are also
counted.
I do not count all the moves I generate (I generate more moves than I actually
make). My NPS would be much higher if I counted them, but that does not fit my
definition because these moves are generated but a cutoff happens before they
are actually made (and so generating them has unfortunately been a waste of
time).
There are moves made that are illegal (the move generator tries to generate only
legal moves but is not really keen about it). So a small percentage of illegal
moves are counted.
>2)Is the reason(or part of the reason) that you have more nps is
>changing your pruning algorithm to have cheap pruning after make move
>instead of expensive pruning before make move?
In general I prune only after making a move (I need to look at the position
after the move to decide if the move is worth looking at).
I don't prune before making a move. It works differently. In general if it is
possible to tell that a move can be pruned before making it (by looking at the
position before the move), then the pruning is done during move generation: the
move generator simply does not generate the move.
My NPS is higher because:
1) I have written an extra engine core ("FUGU") which is extremely "tight". It
updates an internal representation of the board that is simpler than the one of
the classical Tiger engine, and it does not apply all the rules of chess (some
rules like en-passant, castling, underpromoting and 50-moves rule are complex to
handle and slow the engine down significantly). Doing without some rules in the
deepest part of the tree goes mostly unnoticed and help to speed the engine up
tremendously.
2) Thanks to the above speedup, I have indeed removed a part of my pruning rules
that were expensive to compute and were the cause of some mistakes. It might
make sense to use a pruning rule that consumes only 10% of the time you spend on
every node, but when the engine becomes faster the pruning rule can take up to
50% of the time spent on every node. Then you start to think twice about using
this pruning rule.
>In this case the nps may give misleading picture because you may be only 10%
>faster when your nps becomes 100% faster.
You are right, it is misleading to compare only the NPS. And it has always been.
The new version might well be 2 times or 3 times faster and only marginally
faster or even slower in solving problems.
>Note that there are cases when comparing nps between a previous version
>of the program and the last version make sense because more nps means better
>tactical strength(for example if the programmer found a way to do the program
>20% faster without changing the algorithm).
That's right. But in the case of the Tiger X codename "FUGU" engine the
algorithm has been significantly changed. So NPS comparison is not very helpful.
Christophe
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.