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.