Author: Tom Likens
Date: 13:44:22 03/02/03
Go up one level in this thread
On March 02, 2003 at 16:26:24, Uri Blass wrote: > >Hello Tom, >I can say that something is clearly wrong with your speed without discussing the >question if you need to evaluate if a tablebase position is stalemate(I did not >think about it because I still did not think of implementiing tablebases and I >also do not understand why you need it only for tablebases positions). > >Movei does not probe tablebases but it detects stalemate and checkmates in every >position that it evaluates and is not so slow because of it. > >The main factors that do movei slower are: >1) counting legal moves in every position in the tree(latest movei save sometime >by pruning some positions before counting legal moves). > >2)generating all the check moves in the first plies of the qsearch(movei still >use primitive function that generate all the legal moves and checking for >everyone of them if it is a check). > >Inspite of these problems movei search clearly more than 200K nodes per second >in endgames on a relatively slow hardware p850. > >Based on what you tell me it seems that you cannot even search 100Knodes per >second if you only need to evaluate for every position in the tree if it is a >stalemate. > >It means that something in your function to detect stalemate is wrong. >The simplest way to detect if a position is astalemate is to generate the list >of legal moves and stop if you find at least one(movei does more than it and >generate the full list. > >I do not understand how this process can be so slow. >I think that you should think how to improve it because information if the >position is stalemate or checkmate can be productive at every node of the tree >and not only at tablebases position. > >Uri Uri, You're right you can never be too fast :) I think I've found a way to solve the problem (see my post to Dieter). When my engine starts to get a large number of tablebase hits it slow down by about a factor of 3 or 4. Typically, in the middlegame (on an Athlon running at 1.53-GHz) it usually runs between 500-600K nodes/sec and it will often hit a million+ nodes in simple endgames. Unfortunately, a large number of tablebases hits, changes the speed dramatically (and not in a good way :( Profiling my programs shows that most of the time is spent in the eval routines when tablebases are out of the picture. regards, --tom
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.