Damy has now the 7 pieces endgame database

Discussion about development of draughts in the time of computer and Internet.
BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Post by BertTuyt » Wed Jul 16, 2008 12:24

Gerard/Ed,
as you all know by now, its my holiday, so time for programming.
It seems that the database algorithms work.

However before I start them and miss my computer for quite some time, I want to be sure that the speed differences with your algorithms is minor (otherwise I end up with 1000 days or so).

Could you (for example) give me the times (approximation) needed to generate the 2-5 piece database sets. This gives me a clue if my program is comparable, or that I have to dig into the code with a profiler to improve the weak spots.

Thanks in advance,

Bert

Ed Gilbert
Posts: 859
Joined: Sat Apr 28, 2007 14:53
Real name: Ed Gilbert
Location: Morristown, NJ USA
Contact:

Post by Ed Gilbert » Wed Jul 16, 2008 19:29

Bert, I can't do this today but can probably get some numbers tomorrow. A single instance of my db builder generally builds at about 250,000 to 300,000 positions per second. This is not including verification, which nearly doubles the total time. Also, my builder does not build the very small dbs like 2 - 4 pieces as quickly as the larger ones, because it subdivides into hundreds of thousands of files, and the individual files for those small number of pieces are trivially small which makes building them rather inefficient.

Earlier in the "Endgame Databases" thread I posted these results for some 7pc slices, using a 32-bit version of the builder which is slower:
Hi Gerard,

The 4K+1M vs 2K slice took 24.7 hours to build. The build program continued running and completed the 4K+1M vs 1K+1M slice in 26.8 hours, and the 4K+1M vs 2M slice in 6.8 hours. It also has a good start on the 2K+2M vs 3K slice which was next on its build list. Here are the entries from the program's performance log:

88925.6s: db1402 (88924.3s), 212294 pos/sec
185318.4s: db1411 (96392.8s), 359717 pos/sec
209969.9s: db1420 (24650.7s), 644700 pos/sec

If I scale the 24.7 hours by the ratio of our computer clocks, that pushes it up to 1.37 days, which is an order of magnitude faster than your 14 days.

This seems to support what I wrote earlier regarding db sizes and lookup speeds. What is most important is how fast you can do a position lookup. It is likely that your build speed is hampered by having to do multiple database probes in order to get the WLD value of a single position.
Since you can verify your counts against mine or Gerard's you can skip the self-verification passes, but if you didn't already have WLD counts available then I consider this mandatory. The 4x3 and 5x2 set of positions is almost exactly 1e12 positions, so for example at 250kpos/sec that takes 46 days using a single instance. By 'positions' I mean a unique combination of a board setup and a side-to-move, so I'm counting one board setup and both sides to move as 2 positions.

-- Ed

TAILLE
Posts: 968
Joined: Thu Apr 26, 2007 18:51
Location: FRANCE

Post by TAILLE » Wed Jul 16, 2008 19:53

BertTuyt wrote:Gerard/Ed,
as you all know by now, its my holiday, so time for programming.
It seems that the database algorithms work.

However before I start them and miss my computer for quite some time, I want to be sure that the speed differences with your algorithms is minor (otherwise I end up with 1000 days or so).

Could you (for example) give me the times (approximation) needed to generate the 2-5 piece database sets. This gives me a clue if my program is comparable, or that I have to dig into the code with a profiler to improve the weak spots.

Thanks in advance,

Bert
Hi Bert,

Damy time for the endgame database generation (with only one core)
2-5 pieces : 1h15'
6 pieces : 2,5 days
7 pieces : 79 days (but I did not generate 6 pieces against 1)

Seeing that Ed figures are far better, you may take my figures as a maximum.

Gérard

BertTuyt
Posts: 1592
Joined: Wed Sep 01, 2004 19:42

Post by BertTuyt » Thu Jul 17, 2008 19:20

Gerard, the 5-piece database timing is this based on both the 3m - 2m and 4m - 1m (including all subsets) ??

Bert

TAILLE
Posts: 968
Joined: Thu Apr 26, 2007 18:51
Location: FRANCE

Post by TAILLE » Thu Jul 17, 2008 19:38

BertTuyt wrote:Gerard, the 5-piece database timing is this based on both the 3m - 2m and 4m - 1m (including all subsets) ??

Bert
Yes Bert it takes 1h15' to Damy for generating all the 5 pieces database (3 pieces against 2 pieces + 4 pieces against 1 piece which represent 22 subsets : 3020, 2120, 1220 .... 0302, 4010, 3110 ... 0401)
If you need some more figures for generating the 6 pieces database I am at your disposal.
Gérard

Post Reply