Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Who is the champion in calculating perft?

Author: Dan Newman

Date: 23:50:10 11/22/01

Go up one level in this thread


On November 22, 2001 at 15:52:22, Uri Blass wrote:

>The times of my program in calculating perft(number of legal games of fixed
>number of plies) are not bad.
>
>I get on p800 33 seconds for finding perft 6=119060324 in the initial position
>and also 33 seconds for finding perft 5=193690690 in another known position
>
>this is not a mistake and my program needs similiar time because it generates
>only legal moves so it needs less nodes to calculate perft 5.
>
>
>[D]r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1
>
>
>I am interested to know what is the speed of the best free or commercial program
>in calculating perft.
>
>Yace is the fastest free program that I know.
>I do not know about a commercial programs with this function.
>
>
>My move generator is not 100% correct because it has some probelms with the en
>passant rule that I did not care to fix but it finds the right numbers and it is
>clear that fixing the errors is not going to change significantly the speed of
>the program.
>
>
>yace is slightly faster than my program in caculating perft 6 in the initial
>position(32 seconds) but has no chance in the second position and I plan to
>improve the algorithm(there wer important things that I did not do because of
>more important things).
>
>The main improvement that I worked about in the last days was improvement in
>generating moves(my previous version generated only piece go to square when I
>started from the target square and now I start from the piece except checks).
>
>second improvement that I found was a mistake of generating move twice when I
>did not need to do it.
>
>I calculate perft 4 in the following ways:
>1)generate all legal moves
>2)make a3
>3)generate all legal moves
>4)make a6
>5)generate all the legal moves
>6)make a4
>7)generate all the legal moves and add their number into perft
>8)undo a4
>9)generate all the legal moves
>10)make b3
>11)generate all the legal moves and add their number to perft
>12)undo b3
>13)generate all the legalmoves
>14)make b4
>
>I understood that I can save time by not doing 9,13,... because it was exactly
>the same job that I did in 5 and it saved me almost half of the job of
>generating moves(it was not close to 50% improvement because my program also
>make moves and not only generates them but it was a big improvement).
>
>Uri

Shrike does the first in 39 s on a P3/933 but does the second in 60 s.
It does, however, make and undo all the legal moves that it generates.
That is, it actually counts nodes that it visits and not moves
generated.  Shrike's test for move legality is built into make() so I
can't easily avoid the last make/undo to do this as you are doing it.

I get the same node counts as you do.

-Dan.



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.