Computer Chess Club Archives


Search

Terms

Messages

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

Author: Robert Hyatt

Date: 16:41:30 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

The original idea behind perft was to measure move generation _and_ make/unmake
speed.  IE if you do perft 4, a program would generate and make every move up
to 4 plies deep.

You are cutting off the last ply of make/unmake, which is ok, but it isn't
comparable to the original intent of this.  Otherwise everybody will go faster
by dumping the last layer of make/unmake which is expensive...




>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



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.