Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: 0x88 findings

Author: Roman Hartmann

Date: 04:46:38 02/22/06

Go up one level in this thread


On February 22, 2006 at 07:31:30, Thomas Mayer wrote:

>Hi Reinhard,
>
>On February 22, 2006 at 02:33:13, Reinhard Scharnagl wrote:
>
>>On February 21, 2006 at 20:16:33, Sean Mintz wrote:
>>
>>>...
>>>On to the results:
>>>
>>>Version One
>>>
>>>Calculating Perft to depth 6 ... 119060324
>>>Took 19.44 seconds
>>>Performing Move Generator Test ... Took 0.922000 seconds
>>>Performing Move Make Test ... Took 2.243000 seconds
>>>Performing Attack Test ... Took 0.320000 seconds
>>>
>>>Version Two
>>>
>>>Calculating Perft to depth 6 ... 119060324
>>>Took 24.48 seconds
>>>Performing Move Generator Test ... Took 1.932000 seconds
>>>Performing Move Make Test ... Took 2.214000 seconds
>>>Performing Attack Test ... Took 0.410000 seconds
>>>
>>>I was personally surprised to see the second version running so much slower.
>>
>>Hi Sean,
>>
>>let me assure you that a flat data structure is good still for fast move
>>generating. My SMIRF is flat but not 0x88 based. Actually I am short before a
>>complete rewrite of its structures. Nevertheless its move generator (legal move
>>only, fully informed about check threads, mating etc.) actually could produce
>>following statistic very fast (which is important to fairly compare valid move
>>generation):
>>
>>
>>FEN: rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
>>
>>  +-*--b--c--d--*--f--g--*-+ MS Vis.Studio C++ Vers. 13.10
>>8 |[r][n][b][q][k][b][n][r]| (Compilation: Feb 13 2006)
>>7 |[p][p][p][p][p][p][p][p]|
>>6 |   :::   :::   :::   :::| Perft Testseries
>>5 |:::   :::   :::   :::   |
>>4 |   :::   :::   :::   :::| (without caching)
>>3 |:::   :::   :::   :::   |
>>2 |<P><P><P><P><P><P><P><P>| Smirf Test No.: 00
>>1 |<R><N><B><Q><K><B><N><R>|
>>=>+-*--b--c--d--*--f--g--*-+ Break Time 15.0 Sec.
>>
>>Ply      Nodes     all (x)   (e.p.)    all (+)      (#)  Prom.   Cstl.    Sec.
>>------------------------------------------------------------------------------
>>1           20           0        0          0        0      0       0       0
>>2          400           0        0          0        0      0       0       0
>>3         8902          34        0         12        0      0       0       0
>>4       197281        1576        0        469        8      0       0       0
>>5      4865609       82719      258      27351      347      0       0   0.203
>>6    119060324     2812008     5248     809099    10828      0       0   5.344
>>7   3195901860   108329926   319617   33103848   435767      0  883453   142.2
>>------------------------------------------------------------------------------
>>
>>Regards, Reinhard.
>
>just for curiosity: Your mate count given in this table, does that include mates
>in the leaves ? Usually one reason why engines with legal move generation are so
>fast in perft is, that they can stop perft one ply before the leaves because
>they have already all the legal moves in hand. (Quark is something inbetween
>here -> to test the legality it must not do a deepening because it checks it's
>legality already before the move is made)
>
>Greets, Thomas

Reinhards impressive perft stats are one of the reasons I wasted so much time
with my movegenerator.
I'm using also a legal move generator in my engine and if I would like to count
the mates and stalemates I would have to check if the king for the side to move
is in check everytime the move generator gives back a 0, meaning that there are
no legal moves left for the side to move. That wouldn't take too much time
though.

Roman



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.