Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How to handle EGTB stalemates

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.