Verification of perft(14)

Discussion of chess software programming and technical issues.

Moderator: Ras

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

Work unit 1

Post by sje »

The second work unit (i.e., work unit 1, or "wuab") can be had via Dropbox:

https://dl.dropboxusercontent.com/u/31633927/p14wu/wuab

It's 65,488,583 bytes in size.
User avatar
Ajedrecista
Posts: 2189
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Work unit "wuaa".

Post by Ajedrecista »

Hello Steven:
sje wrote:The run on work unit "wuaa" (first of 97) has started. Here are the first ten (first of one million) output records:

Code: Select all

1Bbqkb1r/1p1ppppp/r4n2/p7/3P4/8/PPP1PPPP/RN1QKBNR b KQk - 0 4 3 16509053896
1Bbqkb1r/1p1ppppp/r4n2/p7/8/3P4/PPP1PPPP/RN1QKBNR b KQk - 0 4 3 14802098450
1Bbqkb1r/1p1ppppp/r6n/p7/3P4/8/PPP1PPPP/RN1QKBNR b KQk - 0 4 3 15284820096
1Bbqkb1r/1p1ppppp/r6n/p7/8/3P4/PPP1PPPP/RN1QKBNR b KQk - 0 4 3 13571723219
1Bbqkb1r/1ppppppp/2n2n2/8/8/3P4/PPP1PPPP/RN1QKBNR b KQk - 0 4 3 6494639288
1Bbqkb1r/1ppppppp/2n4n/8/8/3P4/PPP1PPPP/RN1QKBNR b KQk - 0 4 3 5169856607
1Bbqkb1r/1ppppppp/5n2/p7/8/3P4/PPP1PPPP/RN1QKBNR b KQk - 0 4 1 4481847253
1Bbqkb1r/1ppppppp/7n/p7/8/3P4/PPP1PPPP/RN1QKBNR b KQk - 0 4 1 3548443080
1Bbqkb1r/1ppppppp/n4n2/8/8/3P4/PPP1PPPP/RN1QKBNR b KQk - 0 4 3 6156660907
1Bbqkb1r/1ppppppp/n6n/8/8/3P4/PPP1PPPP/RN1QKBNR b KQk - 0 4 3 4915489341
All these ten perft counts were confirmed by JetChess, as expected. The first four positions took around 35 seconds each one in my Intel Pentium D930 (3 GHz) of year 2006, using 512 MB of hash; the rest of positions took around 15 seconds each one.
sje wrote:A slight change: the last (eighth) field is the perft(7) of the position, not the perft(7) times the occurrence count (field seven). The multiplication must be preformed prior to the final summation.

Just think: Only 96,400,068 unique(7) records total.

Chinese proverb: "The longest journey begins with a single step."
Logically, it will be a sum of multiplications. If I am not wrong, the perft sum of these ten positions is 3*(16509053896 + 14802098450 + 15284820096 + 13571723219 + 6494639288 + 5169856607 + 6156660907 + 4915489341) + 4481847253 + 3548443080 = 256743315745 ~ 2.5674e+11, just a grain of sand in the desert of Perft(14) ~ 2.0151e+21.

------------------------

Have you thought about gperft? It is multi-threaded and it also uses transposition tables. It is perft-dedicated only, so it does not deal with evaluations.

Regards from Spain.

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

Re: Work unit "wuaa".

Post by sje »

Ajedrecista wrote:Have you thought about gperft? It is multi-threaded and it also uses transposition tables. It is perft-dedicated only, so it does not deal with evaluations.
Well, gperft is probably faster than Symbolic when doing perft(). Maybe every program is faster than Symbolic when doing perft()! But none of those other programs will help me test the innards of Symbolic. But maybe gperft would be good for you and others. All that needs to be done is to automate the work unit file I/O so that multiple positions can be handled without need for human intervention. If a program can parse FEN, then that's half the work done already.

The wuaa run has now completed 2,551 records, so 997,449 remain. This has taken about 2 1/2 hours, so that's about 3.6 seconds per record. The first order estimate of work unit total time is then about 42 days.
ankan
Posts: 77
Joined: Sun Apr 21, 2013 3:29 pm
Full name: Ankan Banerjee

Re: Work unit "wuaa".

Post by ankan »

I have downloaded Work unit "wuaa" and scheduled it to run on my perft_gpu program.

Current progress (running on a nvidia GTX 780 GPU):

Code: Select all

Records done: 8061, Total: 13767.4 seconds, Avg: 1.70791 seconds
At this rate it will take ~20 days to finish one work unit.

My program still runs without a transposition table.
I am working on transposition table support (Still figuring out some bugs in my CPU version) - hoping to finish it by next week.
Transposition tables would probably provide about 5X more speed - so it still would take my program > 1 year to verify perft(14)!

How much time did Peter Österlund originally took to compute perft(14) and what hardware was used?
User avatar
Ajedrecista
Posts: 2189
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: Work unit "wuaa".

Post by Ajedrecista »

Hello Ankan:
ankan wrote:I have downloaded Work unit "wuaa" and scheduled it to run on my perft_gpu program.

Current progress (running on a nvidia GTX 780 GPU):

Code: Select all

Records done: 8061, Total: 13767.4 seconds, Avg: 1.70791 seconds
At this rate it will take ~20 days to finish one work unit.

My program still runs without a transposition table.
I am working on transposition table support (Still figuring out some bugs in my CPU version) - hoping to finish it by next week.
Transposition tables would probably provide about 5X more speed - so it still would take my program > 1 year to verify perft(14)!
Thanks for the info. Good luck! I stay tuned for further results.
ankan wrote:How much time did Peter Österlund originally took to compute perft(14) and what hardware was used?
Taking into account these two posts:

http://www.talkchess.com/forum/viewtopi ... 45&t=41032

http://www.talkchess.com/forum/viewtopi ... 08&t=47335

I would say that the calculation took a little less than 40 days. You can find the used HW in the first link.

Regards from Spain.

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

Re: Work unit "wuaa".

Post by sje »

Symbolic spent about nine hours on wuaa and processed about 8,500 records. I stopped the program so I could implement a two level transposition approach. However, before I finish this, I will first finish the full conversion of the program's command input system to be event driven instead of being blocking.

Without the two level transposition system, the program currently does perft(10) in one hour and perft(11) in 19.5 hours.