Computer Chess Club Archives


Search

Terms

Messages

Subject: Dog slow move generators

Author: Scott Gasch

Date: 12:56:43 01/16/03


Hi,

Bruce's recent posts about code efficiency have had the opposite affect he
intended, on me at least.  I've been profiling and looking to trim the fat from
my code since reading them.  I have made some progress, I'm glad to report.

As part of these experiments I enabled a material-only eval routine.  Running a
raw speed test with this simple eval I noticed my engine still was only about as
fast as "fast" engines on the same machine.  Engines like yace/crafty/ruffian
seem to run about as fast on my machine as my poor engine does with only a
material count eval.  This indicates to me that I am generating and scoring
moves too slowly.

So I profiled my engine with the material only eval and found that it is
dominated by the SEE code.  This is partially my own fault because I have a
pretty complicated SEE that handles stuff like accurate pawn promotion scores,
pieces that can't participate because they are pinned against the king,
attackers/defenders exposed in the middle of the exchange, etc.

My question for those of you with fast move generators, especially those using
SEEs to score moves, is how do you do it?  Vincent said something to me about
not scoring all the moves generated which doesn't make any sense (at least to
me).  I don't run the hash move through the SEE since I am going to try it first
anyway.  And I won't bother to send PxQ through the SEE, clearly it's a winning
move.  I send all promotions, apparently even captures, and apparently losing
captures though the SEE though to make sure I have a score on every move
generated, though.  I do this because when I go to pick the next best move out
of the list I need to know the score of every move generated.  Am I missing some
trick here?

I have a feeling that monsoon is due for a major code revision after CCT5... I
have a bunch of ideas I want to try like: parallel search, incremental attack
tables instead of an SEE, better POSITION data structure, etc... Thanks for any
and all advice.

Scott



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.