Computer Chess Club Archives


Search

Terms

Messages

Subject: Move generation

Author: Rick Bischoff

Date: 23:27:40 08/13/03


Hi everyone,

In my latest exercise in futility, I am coding different Board/Move generation
schemes and was wondering what raw move generation scores you get.  Let's define
"raw move generation" as follows:

1) All piece moves
2) No special moves (castling, en passant) pawn promotions are not special.

And then define the following coroutines:

int wmetaperft(Board, depth) {
-- if (depth == 0) return 1;
--else {
---nodes = 0
---generateMoves for White
---For each Move M,
----makeMove M
----nodes += bmetaperft(B, depth - 1)
----unmakeMove
---End for
---return nodes

int bmetaperft(Board, depth) {
-- same as white, except generate black moves
--- and call wmetaperft recursively.


Ok, so we are doing no check detection, etc.  No matter what I try, I can never
go much higher than 6 million nodes/sec (on a Athlon 1.4Ghz, I only get 3
million on my G4) as defined by the routines above.  Am I reaching an upper
limit on memory bandwidth (the moves are all encoded as integers...) or is there
room for improvement (i.e., how does this compare to your best)?

Thanks,
Rick



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.