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
Damy has now the 7 pieces endgame database
-
- Posts: 859
- Joined: Sat Apr 28, 2007 14:53
- Real name: Ed Gilbert
- Location: Morristown, NJ USA
- Contact:
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:
-- Ed
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:
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.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.
-- Ed
Hi Bert,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
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
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)BertTuyt wrote:Gerard, the 5-piece database timing is this based on both the 3m - 2m and 4m - 1m (including all subsets) ??
Bert
If you need some more figures for generating the 6 pieces database I am at your disposal.
Gérard