Computer Chess Club Archives




Subject: Who is the champion in calculating perft?

Author: Uri Blass

Date: 12:52:22 11/22/01

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).


This page took 0.04 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.