Distributed perft work unit file record format

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Distributed perft work unit file record format

Post by sje »

Some ideas for the distributed perft work unit file record format:

1) ASCII file, line oriented

2) Each record is one position

3) Fields are separated by a space character

4) First six fields are the FEN for the position

5) Field seven is the integer draft requirement

6) Field eight is the integer count of occurrences

7) [Calculated] Field nine is the integer perft(draft) of the position

8) [Calculated] Field ten is the integer product of fields six and seven

For the FEN half move clock (FEN field five), it is possible for its value to be dependent upon the path taken but without any difference in available moves. To ensure consistency, of all the different half move clock values possible, the lowest one will be output.

Fields past field ten may be strings which describe the items about the processing status and work assignment.

A soon-to-be-released version of CookieCat will produce these files upon command. There will likely be some limit as to the depth, perhaps 8 or 9 ply.
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: Distributed perft work unit file record format

Post by sje »

Looking at this a bit more, I think that field seven should be either swapped with field eight or be deleted. The idea here is that the first N consecutive fields per record should be the same regardless of the actual depth in play for a perft(depth) calculation.

And given some arcane en passant situations, the half move clock should take the highest of several effectively equivalent values for a given position.
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: Distributed perft work unit file record format

Post by stegemma »

sje wrote:Some ideas for the distributed perft work unit file record format:

1) ASCII file, line oriented

2) Each record is one position

3) Fields are separated by a space character

4) First six fields are the FEN for the position

5) Field seven is the integer draft requirement

6) Field eight is the integer count of occurrences

7) [Calculated] Field nine is the integer perft(draft) of the position

8) [Calculated] Field ten is the integer product of fields six and seven

For the FEN half move clock (FEN field five), it is possible for its value to be dependent upon the path taken but without any difference in available moves. To ensure consistency, of all the different half move clock values possible, the lowest one will be output.

Fields past field ten may be strings which describe the items about the processing status and work assignment.

A soon-to-be-released version of CookieCat will produce these files upon command. There will likely be some limit as to the depth, perhaps 8 or 9 ply.
I would suggest:

0) a way to define the version of the format, to handle further modification and still can accept old version results, maybe something in the first line?
1) you should well define line termination: cr, lf or cr/lf?
3) using tab instead of space allows to have FEN occupies just one field