Author: Uri Blass
Date: 10:17:09 12/06/01
Go up one level in this thread
On December 06, 2001 at 11:41:00, Sune Fischer wrote: >On December 06, 2001 at 11:24:18, Uri Blass wrote: > >>On December 06, 2001 at 11:17:14, Severi Salminen wrote: >> >>>>>It is relatively a lot of work and if I have to do the last makemove then my >>>>>program is going to be clearly slower. >>>>> >>>>>my program needs 205 seconds to calculate perft 6 if you force it to make the >>>>>last ply that mean updating the attack arrays. >>>>> >>>>>Uri >>>> >>>>OK, whichever is fine by me as long as we do the same ;) >>> >>>So I AM the winner! My program takes 160 secs to make perft 6 from initial >>>position and that includes makemove()/unmakemove() of ALL moves (this includes >>>legality chech of course)! And it is on Celeron 300Mhz without external (or was >>>it internal) caches what so ever! I could make it probably still a little faster >>>by removing code but that would be stupid. > >Hehe, nice. I can do it in 12 secs on the Athlon, but apparently I get too many >positions so I am disqualified. >I don't check for castle rights because it can't be done in 6 plies anyway. King >captures checks are on, but I've diabled the sorting of moves so it will iterate >deeper and count more nodes before it discovers the positions was actually >illegal to begin with :( >It will cost some speed to sort the moves and fix it, of cause a linear search >would be enough, I just have to check for the king capture. But I can't do perft >7 anyway without some attack bitboards to check the castle stuff, so I surrender >;) > >>>I AM THE KING OF THE WORLD!!!! ...no?... >>> >>>Severi >> >>No >>You are not >> >>My task was not to calculate perft with make and unmake move but to calculate >>perft. >> >>legality check is not done in my makemove and I guess that legality check is >>done in your makemove. >> >>The main problem is that my makemove update the attack arrays and it is needed >>for generating the next ply moves because my gen function generate only legal >>moves not like your program. >> >>Uri > >What is wrong with his method? > >-S. Nothing wrong The only thing is that the comparison is not fair. fair comparison is the time that you need to do the same task. Calculating perft is a well defined task. making and unmaking moves is not well defined task and if my makemove gives more information then I should have the right to use it. His comparison was not the right comparison and the right comparison is when I do not have to make and unmake the moves but only generate the moves. I also think that not generating castling moves is not going to help much in the time that I need to calculate perft 6 in the initial position because finding that there is a piece between the king and the rook is easy. my move generator calculate perft correctly except not generating unpassant moves in replies to check and generating illegal unpassant moves in rare cases but fixing the problem is not going to change the speed significantly. I guess that I am going to do it in the near future. Uri
This page took 0.01 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.