Computer Chess Club Archives


Search

Terms

Messages

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

Author: Uri Blass

Date: 15:12:45 11/23/01

Go up one level in this thread


On November 23, 2001 at 16:25:12, Uri Blass wrote:

>On November 23, 2001 at 15:43:24, Michel Langeveld wrote:
>
>>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
>>
>>I needed 36 hours for this:
>>http://www.it.ro/ccc_search/ccc.php?art_id=57423
>
>1)Did you use hash tables for this?
>If not then 36 hours for number that is more than 20,000 times bigger than the
>number than mine means that without hash you may need less than 6.5 seconds to
>calculate perft 6 in the initial position.
<snipped>
>2)How much time do your program need to calculate perft 6(it seems that it is
>faster than mine)?

It seems that I still can do it twice faster without hash tables

If I do not update my pin arrays I can get the job in 15 seconds(I do not get
the right number but the first 3 digits are correct so I do not believe that it
influence my speed significantly).
I believe that I can save most of the time of updating the pin array by
improving the algorithm.

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.