Measuring Hash Collisions (once again)

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Measuring Hash Collisions (once again)

Post by Rebel »

Yes, good point. On the other hand I was deliberately avoiding zobrist as checksum as the weakness of the algorithm is in the key set and wanted something totally independent. And, if the checksums don't match, that is a collision. The only problem is that it's possible in theory I don't get all the collisions, and for that purpose I will finish the current phase, then move to zobrist as checksum and compare if it reports more collisions.
90% of coding is debugging, the other 10% is writing bugs.
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Measuring Hash Collisions (once again)

Post by hgm »

I would be very surprised if the checksum would not catch more that 99% of all collisions, so you are probably safe enough. Having 1 collision in 64M nodes would completely cripple your program if it caused a crash. But if it just causes that 1 node to have a wrong score, the chances that this wrong score would propagate all the way to the root are minute. The search would just pick anoher move in the same node to avoid the move if it was bad, or another move in the parent to avoid the entire node if it was good.
Alayan
Posts: 550
Joined: Tue Nov 19, 2019 8:48 pm
Full name: Alayan Feh

Re: Measuring Hash Collisions (once again)

Post by Alayan »

A few dozens of TB hits were enough to change the root move on a start position search for Stockfish in a recent experiment by Aloril (both single-core of the same dev version, one without TB use, one with 7-men TB). But for such things to happen, the moves must be ranked extremely close in the first place.
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Measuring Hash Collisions (once again)

Post by Rebel »

Rebel wrote: Fri Feb 28, 2020 8:44 am PART-TWO

Moving from a 48 bit hash key to a 56 bit hash key and repeat the 4 x 100 runs.

So far:

Code: Select all

KEY = 48 bit           KEY = 56 bit
POS  Time    Coll  TP    Coll  TP
100  0:30      20  13       0   0
100  1:00      35  19
100  2:30      87  57
100  5:00     192 144
Final results PART-TWO

Code: Select all

KEY = 48 bit           KEY = 56 bit
POS  Time    Coll  TP    Coll  TP
100  0:30      20  13       0   0
100  1:00      35  19       0   0
100  2:30      87  57       0   0
100  5:00     192 144       0   0
100 10:00     --- ---       0   0
Will move now to a Zobrist 8-bit checksum.
90% of coding is debugging, the other 10% is writing bugs.
jdart
Posts: 4366
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Measuring Hash Collisions (once again)

Post by jdart »

Moving from a 48 bit hash key to a 56 bit hash key and repeat the 4 x 100 runs.
Why not 64-bit, since this is more or less standard?
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Measuring Hash Collisions (once again)

Post by Rebel »

jdart wrote: Fri Feb 28, 2020 8:01 pm
Moving from a 48 bit hash key to a 56 bit hash key and repeat the 4 x 100 runs.
Why not 64-bit, since this is more or less standard?
Perhaps as last step since I have to rewrite my ASM HT code to win a byte.

First I want to know (pure curiosity) how well (or bad) a 48-bit key does, then a 56-bit key.

So far not a single collision seen with a 56-bit key, not even at 5 minutes per move.

Will post the results after the 100 positions at 10 minutes is finished.
90% of coding is debugging, the other 10% is writing bugs.
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Measuring Hash Collisions (once again)

Post by hgm »

With 8 bits extra key you should have 256 times fewer collisions.

But the question is: "what is good enough"? I would say that 1 collision in 64M nodes is already far better than you would need to have totally undetectable impact on Elo. According to Bob 1 collison in 10K nodes should already have no measurable impact, so it seems you are several thousand times better than you need to be, with the 48-bit key. (Which, due to the way you calculate the index in a 128MB table, has 26 significant bits, as the other 22 are redundant.)

Note that I am not convinced by the effect of 7-men EGT in Stockfish. There should not be any lines of chessic relevance from the opening position that reach the 7-men stage, meaning that the scores obtained in these probes should never be able to propagate to the root. It sounds more like an accidental effect of replacing different TT entries because you don't search exactly the same tree, similar to what you would have if you run with a TT of a different size, or using a different set of Zobrist keys. Or that EGT probing slightly slows down the NPS. If root moves are so close in score that the choice between them is basically random, such insignificant things can affect the choice. (And Elo-wise you would not care at all.)

Using longer key will reduce the number of collisions, but it will never make it zero, if you run long enough. If you get one every minute with a 48-bit key, you will get one every 4 hours with a 56-bit key, etc. This would only be of any concern if even a single collision could give you an observable effect, like a program crash (e.g. due to playing an invalid hash move). Crashing once every 4 hours still seems quite unacceptable.

So if your only defense against crashing is the hash key, you need to maintain a much higher standard of collision avoidance. And even then it depends on whether you want to make virtually sure that you would never experience such a crash in a lifetime of your personal use of the program, or whether you have 10,000 users and want to make sure that not a single one of those will ever experience a crash in his lifetime (which he would then post on the forum, to point out, "hey, look how crappy this program is: it crashes reproducibly on this position!").
petero2
Posts: 684
Joined: Mon Apr 19, 2010 7:07 pm
Location: Sweden
Full name: Peter Osterlund

Re: Measuring Hash Collisions (once again)

Post by petero2 »

hgm wrote: Sat Feb 29, 2020 9:20 am But the question is: "what is good enough"? I would say that 1 collision in 64M nodes is already far better than you would need to have totally undetectable impact on Elo. According to Bob 1 collison in 10K nodes should already have no measurable impact, so it seems you are several thousand times better than you need to be, with the 48-bit key. (Which, due to the way you calculate the index in a 128MB table, has 26 significant bits, as the other 22 are redundant.)
I tested this in Texel about two weeks ago. Texel uses 64 bit Zobrist hash keys. A bucket contains 4 entries and a store can write to any one of the 4 entries. If no entry is empty, the least valuable entry is overwritten.

Some of the bits in the Zobrist key are used to determine which bucket a position belongs to. Each entry also stores the whole 64 bit key, even though some of the bits are redundant since they were used to determine the bucket and thus are the same for all positions belonging to that bucket.

I modified the hash probe/insert code so that some of the bits in the Zobrist key are ignored when searching for an entry. The code to determine the bucket was not modified.

I ran some tests with different hash table size, time control and number of verification bits in the hash entries. All tests were using a single core. The result was:

Code: Select all

 TT bits      TC    elo delta  games   win  draw  loss
  1    4  6+0.06 -942.6  43.9   2054     1    16  2037
  1    7  6+0.06 -177.2   6.2   2060   165   762  1133
  1    8  6+0.06  -84.9   5.5   1998   274   971   753
  1    9  6+0.06  -47.4   5.1   2028   353  1047   628
  1   10  6+0.06  -28.0   5.2   2040   414  1048   578
  1   12  6+0.06  -13.0   5.2   2030   441  1072   517
  1   13  6+0.06   -4.3   2.2  11040  2469  5965  2606
  1   16  6+0.06    5.6   5.1   2060   495  1103   462

  1   10 24+0.24  -38.7   3.1   5024   748  2971  1305
  1   14 24+0.24   -2.4   1.7  13644  2488  8572  2584
  1   16 24+0.24   -0.8   2.0  10060  1870  6297  1893

  1   10 96+0.96  -52.4   2.9   5052   570  3156  1326
  1   14 96+0.96   -6.4   1.9  10018  1539  6756  1723
  1   15 96+0.96   -1.2   1.6  13918  2203  9462  2253
  1   16 96+0.96    0.1   1.9  10122  1587  6952  1583

  4    8 24+0.24 -105.7   5.3   2002   186  1039   777
  4    9 24+0.24  -57.7   4.9   2024   267  1157   600
  4   10 24+0.24  -35.7   2.8   6002   903  3581  1518
  4   13 24+0.24   -8.6   2.0  10014  1759  6249  2006
  4   16 24+0.24    0.1   2.0  10362  1906  6552  1904

 16   10 96+0.96  -34.1   4.3   2084   262  1356   466
128    8  6+0.06  -18.2   5.3   2048   439  1063   546
"TT" is the hash table size in megabytes.
"bits" is the number of bits used when comparing hash entries.
"TC" is the time control in seconds, base time + increment.
"elo" is the elo difference compared to unmodified Texel.
"delta" is the estimated standard deviation of the elo.

When a hash probe is made, if an entry exists in the hash table for the probed position, the code is guaranteed to find the correct entry. If an entry does not exist for the probed position, the probability to get a probe result anyway (the collision probability) is 1/2^(bits-2), assuming the hash keys are "random enough".

I ran most tests with a 1 MB hash table to make sure the table is full almost all the time and to get lots of probe misses, to magnify the effect of hash collisions. Texel writes about 16MB/s to the hash table on my test computers when using a single core.

It can be seen that even in the extreme case of 1MB hash table and time control "96+0.96" the effect of hash collisions when using 15 verification bits was too small to measure using about 14000 games.
User avatar
hgm
Posts: 27787
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Measuring Hash Collisions (once again)

Post by hgm »

That pretty much confirms that 16 (non-redundant) bits in the signature is already good enough from an Elo perspective. And with full verification of the hash move, Elo would be the only concern.
petero2 wrote: Sat Feb 29, 2020 1:22 pmSome of the bits in the Zobrist key are used to determine which bucket a position belongs to. Each entry also stores the whole 64 bit key, even though some of the bits are redundant since they were used to determine the bucket and thus are the same for all positions belonging to that bucket.
So XOR the signature (or index) with the incremental eval, to make those bits non-redundant!
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Measuring Hash Collisions (once again)

Post by Rebel »

With Zobrist 8-bit checksum, 48 vs 56 bit hash key.

Code: Select all

KEY = 48 bit           KEY = 56 bit
POS  Time    Coll  TP    Coll  TP
100  0:30      26  17       0   0
100  1:00      41  23       0   0
100  2:30     136  98       0   0
100  5:00     263 211       0   0
100 10:00     438 355       0   0
No single collision with a 56 byte key.

The 10 minutes per move:

Code: Select all

Pos   1    335.753.226    146.513.477 (43%)     0    0   00:04:44  21.00  0.95  1..Bxe5 2.dxe5 Nd3 3.Qxc2 Nxe1 4.Qe2 g6 5.Qxe1 
Pos   2    379.761.209    165.236.968 (43%)     0    0   00:06:52  20.00  0.32  1..Nxf3 2.Rxd8 Rxd8 3.Qxf3 h5 4.Rd1 Rd4 5.Qe3 
Pos   3    354.355.462    179.218.307 (50%)     0    0   00:05:32  19.00  0.44  1..Bxa6 2.Qxa6 Rde8 3.a5 Rxe4 4.Qd3 Ree8 5.Bd2 
Pos   4    396.025.267    177.082.718 (44%)     0    0   00:07:31  22.00  -0.55  1..Qb3 2.Qc2 Qxc2 3.Nxc2 Rc4 4.Nb4 
Pos   5    475.310.830    198.611.473 (41%)     0    0   00:03:53  23.00  0.00  1..Bxe3 2.Rexe3 Rcc8 3.Bg4 a4 4.Rg3 
Pos   6    435.763.543    234.728.172 (53%)     0    0   00:09:54  21.00  0.88  1..Rxd1 2.Qxd1 Ka7 3.Qe2 h5 
Pos   7    394.939.990    150.234.654 (38%)     0    0   00:03:38  21.00  0.46  1.Qxf5 Bxf5 2.Nc3 Bf8 3.g4 Be6 4.Bb5 Kb7 
Pos   8    388.180.455    211.088.380 (54%)     0    0   00:07:39  20.00  0.53  1.Qg6 Rxd1 2.Rxd1 c3 3.bxc3 Rxc3 
Pos   9    369.208.766    170.708.055 (46%)     0    0   00:05:11  20.00  0.21  1.Bxb7 Rxb7 2.Rdd2 Rc4 3.Nd5 Nc6 4.Rxc4 bxc4 
Pos  10    410.069.015    136.289.021 (33%)     0    0   00:04:08  19.00  1.00  1.Rxc8 Qxc8 2.Nc3 Ng6 3.b4 Ne8 
Pos  11    448.228.317    185.623.736 (41%)     0    0   00:04:56  22.00  0.28  1..Rxb2 2.Qxb2 Qa8 3.Nh4 
Pos  12    469.430.870    177.120.591 (37%)     0    0   00:03:57  19.00  0.72  1..Nb4 2.Qxd8 Bxd8 3.Nxb4 Rxb4 4.Bc6 Re6 5.Bg2 
Pos  13    371.166.156    165.018.896 (44%)     0    0   00:08:09  20.00  1.03  1.Bxd5 exd5 2.Nd2 Nxd2 3.Bxd2 
Pos  14    334.790.575    157.207.142 (46%)     0    0   00:08:02  19.00  0.36  1.Bxg7 Kxg7 2.Qh4 f6 
Pos  15    415.507.048    172.373.175 (41%)     0    0   00:04:27  20.00  -0.20  1.Rxb8 Rxb8 2.Nd2 h6 3.Nc4 f5 4.Rc1 Rb1 
Pos  16    351.660.800    147.201.036 (41%)     0    0   00:05:23  20.00  0.71  1.Bxg5 hxg5 2.Nf3 
Pos  17    509.296.055    226.553.336 (44%)     0    0   00:04:38  21.00  0.86  1.h5 Rxe1 2.Rxe1 Qg7 3.Qxg7 Kxg7 4.Ne6 
Pos  18    527.238.966    192.376.521 (36%)     0    0   00:05:29  20.00  0.54  1.Rxd4 Nxd4 2.Bd1 Kf8 
Pos  19    509.421.438    176.256.785 (34%)     0    0   00:03:07  23.00  0.80  1.Rxb8 Nxb8 2.Re1 Nd7 3.Re2 Bd3 4.Nxc6 Rxc6 
Pos  20    378.370.342    188.915.282 (49%)     0    0   00:04:30  20.00  0.65  1..Bxd2 2.Qxd2 Ra8 3.g3 Ra7 4.h4 
Pos  21    385.671.591    165.688.547 (42%)     0    0   00:07:25  19.00  0.59  1..Rbd8 2.Nc4 Rg6 3.Kh1 Rdg8 
Pos  22    576.474.868    240.742.667 (41%)     0    0   00:08:16  23.00  0.71  1.Rxb4 Bxb4 2.d5 exd5 3.a7 Ra8 4.f4 Bc3 5.Bb6 
Pos  23    493.732.234    216.520.585 (43%)     0    0   00:08:39  23.00  0.84  1.Bxc5 Nxc5 2.Rxb8 Bxb8 3.Rb1 Be5 4.Ne7 Ke6 
Pos  24    530.123.018    230.696.760 (43%)     0    0   00:08:39  22.00  0.71  1.Rxb8 Bxb8 2.Rb1 Be5 3.Nxe4 Kxe4 4.f3 
Pos  25    346.055.697    183.905.412 (53%)     0    0   00:09:36  20.00  0.54  1.Nxf8 Kxf8 2.Rc1 Nxe2 3.Qxe2 Ba6 
Pos   1    365.746.424    173.016.816 (47%)     0    0   00:04:54  21.00  0.77  1.Nxc5 bxc5 2.Nxe6 Kh8 3.b3 Qe7 4.f4 Bc7 5.Nxf8 
Pos   2    517.539.915    201.783.322 (38%)     0    0   00:05:05  22.00  1.00  1..Qxa1 2.Rxa1 Rd3 3.Re3 Rxb3 
Pos   3    344.541.838    116.738.050 (33%)     0    0   00:05:30  21.00  0.96  1.Nxc8 Qxc8 2.b5 axb5 3.Qxb5 
Pos   4    418.014.809    152.761.408 (36%)     0    0   00:08:37  23.00  0.00  1..Qxe3 2.fxe3 
Pos   5    335.216.254    125.575.156 (37%)     0    0   00:05:22  20.00  0.41  1.Rxe8 Rxe8 2.Rxe8 Bxe8 3.h5 
Pos   6    340.117.039    144.231.791 (42%)     0    0   00:09:46  20.00  0.61  1.Bxg7 Kxg7 2.h5 e5 3.dxe6 Bxe6 4.Qb2 Kg8 5.h6 
Pos   7    383.016.504    176.050.827 (45%)     0    0   00:06:04  21.00  0.50  1.Rxc2 Rxc2 2.Rd5 Bxg5 3.Bxg5 Qf3 4.Qe3 Qxe3 
Pos   8    337.886.645    145.249.777 (42%)     0    0   00:09:00  22.00  0.58  1.Bxc6 Rxc6 2.Rxc6 Qxc6 3.Qxc6 
Pos   9    505.576.915    250.804.389 (49%)     0    0   00:04:00  21.00  0.95  1..Rxc1 2.Qxc1 Qh4 3.Qc8 Kh7 4.Qc1 Qh3 5.Qf1 
Pos  10    417.889.254    172.170.902 (41%)     0    0   00:04:07  20.00  0.38  1.Rxc8 Qxc8 2.Qc3 Qb8 3.Bc5 
Pos  11    401.546.544    173.084.900 (43%)     0    0   00:08:38  22.00  0.36  1..Rxd1 2.Rxd1 Qc7 3.Bb5 Qc2 4.Qxc2 Rxc2 5.Ba1 
Pos  12    329.309.216    150.959.805 (45%)     0    0   00:04:15  20.00  0.97  1.Nxe7 Bxe7 2.axb5 Rg6 3.Rg1 fxe4 4.Bxe4 Rh6 
Pos  13    420.088.459    195.873.209 (46%)     0    0   00:07:53  21.00  0.63  1.Rxc8 Bxc8 2.Qb8 Qd7 
Pos  14    349.996.906    150.055.663 (42%)     0    0   00:06:09  22.00  0.50  1.Bxd5 Rxc1 2.Bxc1 exd5 3.Ne5 Nhf6 4.f4 Bh6 
Pos  15    374.545.273    157.827.546 (42%)     0    0   00:05:57  22.00  0.86  1.Rxc8 Qxc8 2.Rc3 Qd8 3.Qc2 f6 4.Bxg5 fxg5 
Pos  16    414.561.343    151.735.847 (36%)     0    0   00:06:57  22.00  0.36  1..Qxg4 2.hxg4 Ng6 3.g3 dxc4 4.Rxc4 
Pos  17    423.320.802    171.641.777 (40%)     0    0   00:05:38  22.00  0.15  1..Qxd2 2.Nxd2 Rxc1 3.Rxc1 Bb7 4.Bb1 Rxd4 5.Nf1 
Pos  18    407.566.815    149.359.262 (36%)     0    0   00:09:36  21.00  0.00  1..Bxc4 2.bxc4 Nd7 3.Be3 Nc5 4.Bg5 
Pos  19    365.090.611    194.631.694 (53%)     0    0   00:05:19  19.00  -0.27  1.Rxc7 Bxc7 2.Bd3 Bxg3 3.Bxg5 Kxg5 4.Qe3 Kg4 
Pos  20    472.106.867    255.510.432 (54%)     0    0   00:08:12  20.00  0.77  1.Rxc6 bxc6 2.Qd2 Qd5 3.Qd3 Qe6 4.e3 c5 
Pos  21    558.050.379    219.242.807 (39%)     0    0   00:06:56  22.00  0.57  1.Rxb6 axb6 2.Rb1 Rb8 3.g4 c4 
Pos  22    422.050.223    161.086.835 (38%)     0    0   00:04:26  20.00  0.84  1.Rxd8 Qxd8 2.Qa1 Re6 3.Rc1 Bf8 
Pos  23    474.875.791    209.506.298 (44%)     0    0   00:03:54  22.00  0.37  1.Rxd8 Rxd8 2.Ne4 Rd1 3.Kg2 Rb1 4.Bxe5 
Pos  24    339.826.638    138.766.293 (40%)     0    0   00:02:25  19.00  0.16  1.Bxb7 Rxb7 2.Ng5 Qb8 3.h5 Rbd7 4.Qg4 
Pos  25    463.947.062    176.093.878 (37%)     0    0   00:06:33  23.00  0.38  1..Qxd4 2.Rxd4 Be7 3.Bf3 Rb6 4.Rxd5 Rxb3 
Pos   1    517.100.466    175.785.631 (33%)     0    0   00:04:07  23.00  0.75  1..Rxd3 2.cxd3 b5 3.Nb6 fxg3 4.hxg3 
Pos   2    462.291.231    190.795.770 (41%)     0    0   00:05:17  21.00  1.01  1.Qxg5 hxg5 2.Nxe5 dxe5 3.Kc2 Bc5 4.Rxc5 Rd1 
Pos   3    434.037.624    148.290.561 (34%)     0    0   00:06:37  22.00  -0.29  1.Qxe8 Bxe8 2.Bd1 Nd5 3.Bd2 Bd6 
Pos   4    403.351.907    167.403.451 (41%)     0    0   00:04:48  19.00  1.02  1.Bxe6 Qxe6 2.Qe3 Rc8 3.Qb6 
Pos   5    416.910.898    198.393.330 (47%)     0    0   00:01:41  21.00  1.11  1..Rxe1 2.Qxe1 Re6 3.Qd2 Bf6 4.a5 g5 
Pos   6    517.631.466    215.924.219 (41%)     0    0   00:05:42  23.00  0.59  1..Rxc1 2.Bxc1 Rc8 3.Ra2 Rxc1 4.Rxa4 Re1 5.Kf4 
Pos   7    351.214.180    149.953.472 (42%)     0    0   00:04:18  19.00  -0.06  1.Bxc5 Qxc5 2.c4 dxc4 3.Bxc4 Nd4 
Pos   8    368.230.830    132.379.801 (35%)     0    0   00:05:37  20.00  0.51  1.Bxf6 Bxf6 2.Bd5 Qe7 3.Rc3 Bg5 4.Rf3 e4 5.Rf7 
Pos   9    385.101.389    176.067.598 (45%)     0    0   00:01:27  20.00  0.37  1..Rxd4 2.cxd4 Nf6 3.Be5 Nd5 4.Rf3 f6 5.Bf4 
Pos  10    549.144.434    246.251.166 (44%)     0    0   00:04:12  22.00  0.88  1.Rxh5 Bxh5 2.Ne5 Bxf3 3.Nxf3 Nb5 4.Kd3 Kf6 
Pos  11    363.787.231    183.595.698 (50%)     0    0   00:06:06  20.00  0.55  1.Rxf8 Rxf8 2.Qg2 b4 3.Nd1 Qd4 
Pos  12    430.535.907    207.195.828 (48%)     0    0   00:07:58  21.00  0.93  1.g3 g4 2.Qxe6 Nxe6 3.Rf5 Nxf8 4.Rxf8 Kg7 5.Rf5 
Pos  13    528.932.724    213.019.915 (40%)     0    0   00:07:42  22.00  0.53  1..Rxd3 2.Rxd3 Ra6 3.Nd5 Rxa4 
Pos  14    351.314.669    134.528.976 (38%)     0    0   00:05:42  21.01  0.58  1.Bxd5 Rxd5 2.Rc4 Bd6 3.Rxc5 
Pos  15    406.152.371    193.580.205 (47%)     0    0   00:04:46  21.00  0.69  1.Rxb4 axb4 2.Ne3 Bb5 3.Kh1 
Pos  16    411.308.280    200.907.694 (48%)     0    0   00:05:38  22.00  0.69  1..Rxd4 2.Qxd4 Qc7 3.Rd3 Rb4 4.Nxd5 Rxd4 5.Nxc7 
Pos  17    367.672.233    163.984.051 (44%)     0    0   00:06:56  20.00  -0.52  1..Rxd3 2.Bxd3 Rd6 3.Rd2 Qa7 4.Bf1 Rxd2 5.Bxd2 
Pos  18    504.690.101    170.622.592 (33%)     0    0   00:06:42  21.00  0.05  1.Qxd7 Nxd7 2.a6 Nb6 3.Bd2 Nc8 4.b3 Bd6 
Pos  19    498.964.890    225.404.127 (45%)     0    0   00:07:39  20.00  0.75  1.Bxd6 Qxd6 
Pos  20    437.448.759    213.261.148 (48%)     0    0   00:05:35  20.00  0.97  1..Bxh4 2.Kxh4 Qd4 3.Re1 Qe5 4.Kh3 Raa8 
Pos  21    424.465.175    192.765.505 (45%)     0    0   00:06:12  21.00  1.28  1.Qxe5 dxe5 2.Bxa5 Ra7 3.Bb4 Kf6 4.Rd1 h5 
Pos  22    380.463.439    172.902.746 (45%)     0    0   00:07:09  19.00  0.34  1..Bf2 2.Ng2 Bd4 
Pos  23    468.508.963    241.384.030 (51%)     0    0   00:08:51  22.00  0.00  1..Bxh2 2.Kxh2 Nf6 3.Bg3 
Pos  24    430.253.259    218.118.205 (50%)     0    0   00:05:30  19.00  0.02  1.Rxc7 Nxc7 2.Qc4 Qd7 3.f4 exf4 4.gxf4 Ke7 
Pos  25    476.816.121    230.348.655 (48%)     0    0   00:07:59  25.00  0.21  1..Qxf3 2.Kxf3 Bb2 3.Rxb4 cxb4 4.Ra4 Bc3 5.Bxe3 
Pos   1    378.662.293    175.876.763 (46%)     0    0   00:08:49  21.00  0.09  1..Nb3 2.Kb1 Nxc1 3.Kxc1 Qxg5 4.Qe3 Rb5 5.Qxg5 
Pos   2    389.408.542    129.243.062 (33%)     0    0   00:05:58  21.00  -0.10  1..Rxb2 2.Qxb2 Qc7 3.Nxd4 cxd4 4.Bd2 Qd7 5.h3 
Pos   3    441.848.010    202.416.344 (45%)     0    0   00:07:04  21.00  0.94  1.Rxa4 Rxa4 2.Rxa4 Qxa4 3.Qb8 
Pos   4    408.008.622    168.733.818 (41%)     0    0   00:04:39  24.00  0.54  1.Rxb8 Qxb8 2.Rb3 Qc7 3.Kg1 Bc2 4.Rb6 Be4 5.Nxe4 
Pos   5    429.330.565    170.372.582 (39%)     0    0   00:03:13  21.00  0.37  1..Rxb1 2.Nxb1 Qb7 3.Nfd2 Qb2 4.Qe7 Nxc3 5.Qxd7 
Pos   6    471.643.922    202.513.091 (42%)     0    0   00:04:45  19.00  0.58  1.Bxc8 Nxc8 2.Kc2 Be7 3.f3 Rg6 4.Rha1 f5 5.Kd3 
Pos   7    344.136.403    133.331.484 (38%)     0    0   00:05:21  20.00  1.27  1.Nxf6 Qxf6 2.Be4 Rb8 3.Ba7 
Pos   8    339.029.227    149.015.998 (43%)     0    0   00:09:11  20.00  0.00  1.Rxe6 fxe6 2.c5 e5 3.Ra1 Nab6 4.Rd1 Na4 5.Ra1 
Pos   9    354.258.822    160.654.573 (45%)     0    0   00:05:52  22.00  0.50  1..Qxd4 2.Rxd4 Rc6 3.Rd2 Rac8 4.Nd1 Rxc2 5.Rxd6 
Pos  10    360.432.054    156.752.504 (43%)     0    0   00:06:19  20.00  1.29  1.Qc4 Rxe1 2.Rxe1 Qd7 3.Rc1 Ne3 4.Qxc7 Nexd5 
Pos  11    381.920.064    149.411.603 (39%)     0    0   00:07:59  21.00  0.16  1..Bxd5 2.Rxd5 Nf8 3.Rxd8 
Pos  12    441.175.233    237.319.446 (53%)     0    0   00:03:37  18.00  0.35  1..Rxd3 2.Rxd3 Re8 3.h3 Qe4 4.Qd2 Kg7 5.Qc3 
Pos  13    345.295.502    135.809.237 (39%)     0    0   00:09:53  19.02  0.75  1..Bxf3 2.Qxf3 Qd6 3.Rd1 Ra5 4.c5 bxc5 5.dxc5 
Pos  14    406.161.267    171.640.000 (42%)     0    0   00:06:40  21.00  0.39  1..Qxg3 2.Rxg3 b4 3.Nb5 Bh6 4.Kb1 Bf4 
Pos  15    392.564.375    183.438.505 (46%)     0    0   00:04:55  21.00  -0.34  1..Bxh3 2.Qxh3 Rac8 3.Rhf1 Qe5 4.Qd3 Rc4 
Pos  16    358.695.361    144.637.223 (40%)     0    0   00:09:02  21.00  0.66  1..Rxe1 2.Qxe1 Bxf3 3.gxf3 Qxd4 4.Qe4 Rd8 
Pos  17    331.665.817    117.723.775 (35%)     0    0   00:01:31  20.00  0.41  1..Nxg5 2.Qxg5 Be7 3.Qe3 Rad8 4.Nf3 Nc5 5.bxc5 
Pos  18    349.120.661    133.571.886 (38%)     0    0   00:06:44  19.00  0.45  1..Bxd5 2.exd5 g6 3.Rd1 Bg5 4.Rff1 Rae8 5.Kh1 
Pos  19    343.732.407    134.159.151 (39%)     0    0   00:09:07  19.00  0.73  1..Bxe4 2.Nxe4 
Pos  20    360.792.212    161.588.053 (44%)     0    0   00:03:47  20.00  0.50  1.Bxc5 dxc5 2.fxe5 Bxc1 3.Qxc1 
Pos  21    372.617.915    199.583.836 (53%)     0    0   00:09:49  20.00  0.71  1.Bxg4 fxg4 2.Nd1 Rxf1 3.Rxf1 Qxe4 4.Qxb7 Rc8 
Pos  22    509.285.870    285.440.351 (56%)     0    0   00:09:19  19.00  -0.20  1..Rxf2 2.Qxf2 hxg5 
Pos  23    357.595.842    142.283.377 (39%)     0    0   00:07:40  20.00  -0.07  1..Nxe4 2.Qxe4 Rb3 3.Rd2 Qb5 4.Rh3 Re8 5.Bb4 
Pos  24    375.835.832    186.640.088 (49%)     0    0   00:07:44  20.00  1.49  1..Kc8 2.Qxf4 Rxe7 3.Rxe7 Bxe7 4.h5 Qa1 
Pos  25    476.996.117    220.554.597 (46%)     0    0   00:09:56  21.02  0.76  1.Kg3 Ra4 2.Rd2 Rxa6 
No single collision with a 56 byte key.

With games it's different, first the HT is never cleared and secondly the nature of the start position only slightly changes move after move, this contradictory using EPD positions. In some of the 40/2:00 games I am playing I see a collision occur. The game, pos 6 and 7

Code: Select all

Pos   1    105.142.242     37.713.107 (35%)     0    0    0    0   00:02:21  18.00  -0.00  1..g5 2.Bg3 c5 3.f3 cxd4 
Pos   2     84.466.202     34.687.002 (41%)     0    0    0    0   00:02:27  18.00  0.27  2.Bg3 c5 3.dxc5 Ne4 4.Qc2 
Pos   3    101.107.778     39.429.095 (38%)     0    0    0    0   00:02:11  18.00  -0.13  2..c5 3.dxc5 Ne4 4.Qc2 bxc5 5.f3 Nxg3 6.hxg3 
Pos   4    112.798.936     47.228.775 (41%)     0    0    0    0   00:01:16  17.08  0.09  3.Rd1 Ne4 4.Qc2 cxd4 5.Rxd4 d5 6.e3 f5 7.cxd5 
Pos   5     58.945.119     25.252.328 (42%)     0    0    0    0   00:01:34  17.01  0.00  3..Ne4 4.Qd3 b5 5.dxc5 Na6 6.cxb5 Qa5 7.b4 
Pos   6     55.527.648     24.343.630 (43%)     1    0    1    0   00:01:41  17.00  0.15  4.Qc2 cxd4 5.Rxd4 f5 
Pos   7    119.408.690     54.179.797 (45%)     1    0    2    0   00:02:40  18.00  0.11  4..cxd4 5.Rxd4 f5 6.f3 Nc6 7.Rd1 Nxg3 
Pos   8     20.092.497      9.261.524 (46%)     0    0    2    0   00:00:34  16.00  0.09  5.Rxd4 d5 6.f3 Qf6 7.Rd1 Nxg3 8.hxg3 Nc6 9.cxd5 
Pos   9    118.194.459     53.802.132 (45%)     0    0    2    0   00:03:03  18.00  0.09  5..f5 6.f3 Nc6 7.Rd1 Nxg3 8.hxg3 Rc8 9.e4 Ne5 
Pos  10     76.762.479     35.628.401 (46%)     0    0    2    0   00:02:11  18.00  -0.06  6.f3 Nc6 7.Rd1 Nxg3 8.hxg3 d5 9.cxd5 exd5 
Pos  11     70.668.462     32.968.157 (46%)     0    0    2    0   00:02:09  17.03  0.31  6..Nc6 7.Rd1 Nxg3 8.hxg3 
Pos  12    171.000.899     84.374.603 (49%)     0    0    2    0   00:04:17  19.00  0.00  7.Rd1 Nxg3 8.hxg3 d5 9.f4 g4 10.cxd5 exd5 
Pos  13     81.351.228     40.623.516 (49%)     0    0    2    0   00:02:22  18.00  0.09  7..Nxg3 8.hxg3 d5 9.cxd5 exd5 10.Qd2 
Pos  14     12.700.738      6.484.122 (51%)     0    0    2    0   00:00:23  15.00  0.00  8.hxg3 d5 9.f4 g4 10.cxd5 exd5 11.Nf2 Qf6 12.e4 
Pos  15     66.542.687     34.132.262 (51%)     0    0    2    0   00:02:04  16.00  0.23  8..d5 9.f4 g4 10.cxd5 exd5 11.Nf2 Qf6 12.e4 
Pos  16     90.695.619     46.043.000 (50%)     0    0    2    0   00:02:26  18.00  0.00  9.f4 g4 10.cxd5 exd5 11.Nf2 
Pos  17    104.596.327     52.453.875 (50%)     0    0    2    0   00:02:59  18.02  0.09  9..Na5 10.fxg5 Rc8 11.gxh6 Nxc4 12.Nf4 Qf6 
Pos  18     67.523.989     35.896.176 (53%)     0    0    2    0   00:01:22  18.00  0.00  10.fxg5 Nxc4 11.Qc1 Rc8 12.b3 Ne5 13.Qa1 Ng4 
Pos  19     81.406.068     40.982.679 (50%)     0    0    2    0   00:02:06  18.00  0.00  10..Nxc4 11.Qc1 Rc8 12.b3 Ne5 13.Qf4 Qc7 14.gxh6 
Pos  20    120.792.676     64.558.896 (53%)     0    0    2    0   00:02:12  19.00  -0.22  11.Qc3 hxg5 12.Nxg5 Qxg5 13.Rh8 
Pos  21    129.755.527     69.287.671 (53%)     0    0    2    0   00:02:31  19.00  0.05  11..hxg5 12.Nxg5 
Pos  22     99.448.743     54.838.154 (55%)     0    0    2    0   00:02:08  19.00  0.00  12.Nxg5 Qxg5 13.Rh8 Kf7 14.Rh7 Ke8 15.Rxb7 
Pos  23     10.445.250      5.940.089 (56%)     0    0    2    0   00:00:14  17.00  0.04  12..Qxg5 13.Rh8 Kf7 14.Rh7 Ke8 15.Rxb7 Qf6 
Pos  24    188.544.657    106.656.922 (56%)     0    0    2    0   00:03:30  21.00  -0.79  13.Rh8 Kf7 14.Rh7 Ke8 15.Rxb7 Qf6 16.Rd4 Rf7 
Pos  25         10.337          6.281 (60%)     0    0    2    0   00:00:00   7.00  -0.31  13..Kf7 14.Rh7 Ke8 15.Rxb7 Rf7 16.Qh8 Rf8 
Pos  26     97.376.011     54.814.258 (56%)     0    0    2    0   00:02:12  21.00  -0.78  14.Rh7 Ke8 15.Rxb7 Qf6 16.Rd4 Rf7 17.Rxf7 
Pos  27    274.107.271    157.971.529 (57%)     0    0    2    0   00:06:38  21.00  0.86  14..Ke8 15.Rxb7 Qf6 
Pos  28     26.016.982     15.510.024 (59%)     0    0    2    0   00:00:33  19.00  0.00  15.Rxb7 Rf7 16.Qh8 Rf8 17.Qc3 
Pos  29     83.972.652     45.276.701 (53%)     0    0    2    0   00:01:12  20.00  0.00  15..Rf7 16.Qh8 Rf8 17.Qc3 Rd3 
Pos  30    197.557.833    109.993.818 (55%)     0    0    2    0   00:02:51  22.00  0.00  16.Qh8 Rf8 17.Qc3 
Pos  31          2.004          1.288 (64%)     0    0    2    0   00:00:00   7.00  0.00  16..Rf8 17.Qc3 
Pos  32     90.857.066     50.503.853 (55%)     0    0    2    0   00:00:52  22.00  0.00  17.Qc3 
Pos  33     94.890.964     51.039.796 (53%)     0    0    2    0   00:01:43  19.00  0.02  17..Qf6 18.Rd4 Rf7 19.Rxf7 Kxf7 20.e4 fxe4 
Pos  34    140.741.792     76.617.463 (54%)     0    0    2    0   00:02:02  20.00  -0.00  18.Rd4 Rf7 19.Rxf7 
Pos  35    128.900.442     71.006.037 (55%)     0    0    2    0   00:02:36  20.00  0.09  18..Rf7 19.Rxf7 Kxf7 20.e3 Nd6 21.Qc7 
Pos  36     92.965.930     54.056.445 (58%)     0    0    2    0   00:01:55  20.00  -0.17  19.Rxf7 Kxf7 20.e4 fxe4 21.Bxc4 dxc4 22.Qxc4 
Pos  37     34.153.874     19.267.325 (56%)     0    0    2    0   00:00:47  18.00  0.14  19..Kxf7 20.e3 Nd6 21.Qc7 Qe7 22.Qxe7 Kxe7 
Pos  38    166.023.508     96.773.393 (58%)     0    0    2    0   00:02:13  20.00  -0.23  20.e4 fxe4 21.Bxc4 Rc8 22.a4 Kg7 23.Ke2 Rxc4 
Pos  39    208.367.056    125.067.082 (60%)     0    0    2    0   00:03:30  20.00  0.64  20..fxe4 21.Bxc4 Rc8 22.a4 Rc5 23.b3 dxc4 24.bxc4 
Pos  40    162.052.827    101.135.237 (62%)     0    0    2    0   00:02:37  20.00  -0.11  21.Bxc4 Rc8 22.a4 Rxc4 23.Rxc4 dxc4 24.Qxc4 
Pos  41    119.300.808     74.678.832 (62%)     0    0    2    0   00:01:27  19.00  0.05  21..Rc8 22.a4 Rc5 23.Qe3 
Pos  42     96.503.250     61.343.343 (63%)     0    0    2    0   00:01:50  20.00  0.00  22.a4 Rc5 23.b3 dxc4 24.bxc4 Ke8 25.Qd2 Qf2 
Pos  43    274.007.383    170.249.845 (62%)     0    0    2    0   00:05:41  20.00  0.00  22..Rc5 23.Qe3 
Pos  44     99.987.042     64.069.812 (64%)     0    0    2    0   00:02:09  19.00  0.00  23.b3 dxc4 24.bxc4 Kg8 
Pos  45     77.943.574     49.788.456 (63%)     0    0    2    0   00:01:35  18.00  0.44  23..dxc4 24.bxc4 Ra5 25.Rd7 Kg6 26.Qc2 Qa1 
Pos  46    119.036.018     75.743.022 (63%)     0    0    2    0   00:02:04  19.00  -0.43  24.bxc4 Ra5 25.Rd7 Kg6 26.Qc2 Qa1 27.Rd1 Qe5 
Pos  47    118.194.250     75.609.867 (63%)     0    0    2    0   00:01:57  19.00  0.26  24..Ra5 25.Ke2 Rxa4 26.Rd7 Kg6 27.Qc2 Ra3 28.Qxe4 
Pos  48    165.448.898    108.340.438 (65%)     0    0    2    0   00:01:47  19.00  -0.48  25.Ke2 Rxa4 26.Rd7 Kg6 27.Qc2 Ra3 28.Qxe4 
Pos  49    350.013.801    216.093.977 (61%)     0    0    2    0   00:07:27  19.04  0.38  25..Kg6 26.Qd2 Qf5 27.Qc2 Re5 
Pos  50    154.311.786     95.752.815 (62%)     0    0    2    0   00:02:36  19.00  -0.58  26.Qe3 Rxa4 27.Qxe4 Qf5 28.Qxf5 
Pos  51    152.203.434     93.445.372 (61%)     0    0    2    0   00:02:40  19.00  0.58  26..Rxa4 27.Qxe4 Qf5 28.Qg4 Qxg4 29.Rxg4 Kf5 
Pos  52    126.501.668     76.099.411 (60%)     0    0    2    0   00:01:41  19.00  -0.68  27.Qxe4 Qf5 28.Qxf5 Kxf5 29.Rf4 Ke5 30.Rh4 
Pos  53    241.206.277    142.350.978 (59%)     0    0    2    0   00:03:47  19.00  0.64  27..Qf5 28.g4 Ra2 29.Ke3 Qxe4 30.Rxe4 
Pos  54    210.072.759    115.736.512 (55%)     0    0    2    0   00:02:46  19.00  -0.75  28.Qxf5 Kxf5 29.Kf3 Ra3 30.Kf2 a5 31.g4 Ke5 
Pos  55    356.573.302    180.730.146 (50%)     0    0    2    0   00:05:28  21.00  1.01  28..Kxf5 29.g4 Ke5 30.Rd7 Rxc4 
Pos  56    284.474.656    146.972.222 (51%)     0    0    2    0   00:04:02  21.00  -0.95  29.g4 Ke5 30.Rd7 
Pos  57    217.494.416    113.103.679 (52%)     0    0    2    0   00:01:04  20.00  1.07  29..Ke5 30.Rd7 Rxc4 31.Rxa7 Rxg4 32.Kf3 Rf4 
Pos  58    202.135.778    110.713.334 (54%)     0    0    2    0   00:02:54  21.00  -1.00  30.Rd7 Rxc4 31.Rxa7 Rxg4 32.Kf3 
Pos  59    126.498.671     69.626.246 (55%)     0    0    2    0   00:01:11  20.00  1.08  30..Rxc4 31.Rxa7 Rxg4 32.Kf3 Rf4 33.Kg3 b5 
Pos  60    287.992.404    189.362.157 (65%)     0    0    2    0   00:03:22  22.00  -1.01  31.Rxa7 Rxg4 32.Kf3 Rg5 33.Rb7 
Pos  61    159.890.939    110.797.753 (69%)     0    0    2    0   00:01:52  21.00  1.10  31..Rxg4 32.Kf3 Rf4 33.Ke3 b5 34.Rb7 Rb4 35.Rb6 
Pos  62    286.152.327    202.067.382 (70%)     0    0    2    0   00:03:12  21.00  -0.84  32.Kf3 Rf4 33.Ke3 b5 34.Rb7 Rd4 
Pos  63    183.119.164    125.516.840 (68%)     0    0    2    0   00:02:09  20.00  1.21  32..Rf4 33.Kg3 Rb4 34.Kf3 Rd4 35.Ra3 
Pos  64    340.699.380    230.189.702 (67%)     0    0    2    0   00:04:09  20.01  -1.03  33.Kg3 Rb4 34.Rf7 b5 35.Kf3 Rb3 
Pos  65    249.694.462    161.946.085 (64%)     0    0    2    0   00:03:05  20.05  1.08  33..b5 34.Rb7 Rb4 35.Kf3 Rb3 36.Kg4 Kd4 37.Kh4 
Pos  66    277.927.492    170.485.325 (61%)     0    0    2    0   00:03:04  21.00  -1.29  34.Rb7 Rb4 35.Kf3 Rf4 
Pos  67    169.648.534    108.218.106 (63%)     0    0    2    0   00:02:05  20.00  1.21  34..Rb4 35.Kh3 Kf4 36.g3 Kg5 37.Ra7 Rd4 38.Rg7 
Pos  68    305.384.854    189.020.616 (61%)     0    0    2    0   00:03:16  20.00  -1.15  35.Kh3 Rb3 36.Kg4 Rb4 37.Kf3 Rg4 38.Kxg4 
Pos  69    304.427.812    188.891.051 (62%)     0    0    2    0   00:03:40  21.00  1.32  35..Rb1 36.g4 Kf4 37.Rf7 Kg5 38.Rg7 Kf6 39.Rb7 
Pos  70    225.051.462    141.724.164 (62%)     0    0    2    0   00:02:17  21.00  -1.12  36.g4 Ke4 37.Kh4 Rh1 38.Kg3 Ra1 39.Rxb5 Rg1 
Pos  71    250.291.912    160.475.783 (64%)     0    0    2    0   00:02:03  20.01  1.15  36..b4 
Pos  72    179.901.333    115.398.880 (64%)     0    0    2    0   00:01:37  21.00  -1.20  37.Kg2 Kf4 
Pos  73    277.253.801    183.014.433 (66%)     0    0    2    0   00:01:58  22.00  0.96  37..Kf4 38.Re7 Re1 39.Rb7 Re5 40.Kh3 Rc5 41.Kh4 
Pos  74    366.624.090    246.042.189 (67%)     0    0    2    0   00:03:57  23.00  -1.39  38.Re7 e5 39.g5 Kxg5 
Pos  75    263.872.608    187.293.664 (70%)     0    0    2    0   00:02:30  22.00  1.51  38..e5 39.g5 Rb2 40.Kf1 Kxg5 41.Rxe5 Kf4 42.Rh5 
Pos  76    224.924.186    166.715.589 (74%)     0    0    2    0   00:01:55  22.00  -1.30  39.g5 Kxg5 
Pos  77    277.371.573    233.811.881 (84%)     0    0    2    0   00:02:29  22.00  1.73  39..Kxg5 40.Rxe5 Kf4 
Pos  78    216.646.037    195.362.966 (90%)     0    0    2    0   00:02:00  21.00  -1.64  40.Rxe5 Kf4 41.Re7 b4 42.Rh7 Rb2 43.Kh3 Rb3 
Pos  79    239.370.305    220.683.919 (92%)     0    0    2    0   00:02:07  20.00  1.77  40..Kf4 41.Rd5 Rb2 
Pos  80    248.638.021    229.006.406 (92%)     0    0    2    0   00:01:50  20.01  -1.72  41.Re7 b4 
Pos  81    740.927.998    681.240.045 (91%)     0    0    2    0   00:06:29  22.00  2.21  41..b4 42.Rb7 Rb2 43.Kh3 b3 44.Rb4 Ke3 45.Kg3 
Pos  82    379.400.107    356.408.306 (93%)     0    0    2    0   00:01:31  21.00  -2.41  42.Kf2 b3 43.Rb7 Rb2 44.Kg1 
Pos  83    274.511.793    256.360.447 (93%)     0    0    2    0   00:01:48  23.00  1.50  42..b3 43.Rb7 Ke4 44.Rb4 Kd5 45.Kg3 Kc5 46.Ra4 
Pos  84    541.406.249    515.558.573 (95%)     0    0    2    0   00:03:43  24.00  -2.50  43.Rb7 Rb2 44.Ke1 Ke4 45.Kd1 Kd4 46.Kc1 Rc2 
Pos  85    351.792.498    338.435.781 (96%)     0    0    2    0   00:02:46  24.00  2.64  43..Rb2 44.Ke1 Ke4 45.Kd1 Rb1 46.Kd2 Rb2 47.Kc3 
Pos  86    311.978.135    299.202.065 (95%)     0    0    2    0   00:02:17  23.00  -2.33  44.Ke1 Ke3 
Pos  87    530.922.178    507.232.762 (95%)     0    0    2    0   00:04:06  25.00  1.53  44..Ke3 45.Re7 Kd4 46.Rd7 Kc3 47.Rc7 
Pos  88    323.151.333    308.211.926 (95%)     0    0    2    0   00:02:25  25.00  -1.39  45.Re7 Kd4 46.Rd7 Ke5 47.Rd3 Kf6 
Pos  89    359.822.827    341.685.862 (94%)     0    0    2    0   00:02:33  24.00  1.53  45..Kd3 46.Rd7 Kc4 47.Rc7 Kd4 48.Rd7 Kc5 49.Rc7 
Pos  90    430.955.130    413.942.455 (96%)     0    0    2    0   00:03:14  25.00  -2.64  46.Rd7 Kc2 47.Rc7 Kb1 48.Rb7 
Pos  91    212.550.848    205.045.707 (96%)     0    0    2    0   00:01:14  28.00  2.51  46..Kc2 47.Rc7 Kb1 
Pos  92    727.580.246    703.804.746 (96%)     0    0    2    0   00:04:38  27.00  -3.15  47.Rc7 Kb1 48.Rb7 
Pos  93    550.374.832    524.127.824 (95%)     0    0    2    0   00:00:05  25.00  2.27  47..Kb1 48.Rb7 Ka2 49.Ra7 Kb1 50.Rb7 Ka2 51.Ra7 
Pos  94    232.977.327    222.712.962 (95%)     0    0    2    0   00:01:52  23.00  -2.58  48.Rb7 Kc1 49.Rb8 Kc2 50.Rc8 Kb1 51.Rb8 Ka2 
Pos  95    329.704.629    322.775.143 (97%)     0    0    2    0   00:02:32  24.00  3.21  48..Kc1 49.Rb6 Rb1 
Pos  96    334.116.712    326.561.262 (97%)     0    0    2    0   00:01:45  23.00  -3.09  49.Rb8 Rb1 50.Ke2 Kc2 
Pos  97    242.383.740    237.583.015 (98%)     0    0    2    0   00:01:50  23.00  3.23  49..Rb1 50.Ke2 
Pos  98    315.400.526    307.509.696 (97%)     0    0    2    0   00:01:41  24.00  -3.11  50.Ke2 Kc2 
Pos  99    283.875.731    277.013.928 (97%)     0    0    2    0   00:02:15  23.00  3.21  50..Kb2 51.Kd2 Rh1 
Pos 100    299.010.865    291.709.898 (97%)     0    0    2    0   00:01:30  22.00  -3.09  51.Kd2 Ra1 52.Rb5 Rh1 53.Rf5 Ka3 
Pos 101    334.158.473    323.478.463 (96%)     0    0    2    0   00:02:42  23.05  3.23  51..Rg1 
Pos 102    480.439.753    461.490.684 (96%)     0    0    2    0   00:03:04  23.01  -3.25  52.Kd3 Ka2 53.Kc3 Rc1 54.Kb4 Ra1 55.Ra8 Kb1 
Pos 103    833.979.417    805.556.716 (96%)     0    0    2    0   00:01:41  23.01  3.81  52..Ra7 53.Rb6 Ka3 54.Kc3 Rc7 55.Kd2 Ka2 56.Rb8 
Pos 104    538.224.717    516.801.167 (96%)     0    0    2    0   00:04:25  24.00  -5.45  53.Kd2 Ra2 54.Kd1 Ra7 55.Kd2 Rd7 56.Ke2 Re7 
Pos 105    466.136.794    440.428.737 (94%)     0    0    2    0   00:01:23  23.00  5.81  53..Ra3 54.Rb4 
Pos 106    523.316.054    497.157.767 (95%)     0    0    2    0   00:00:22  23.00  -5.63  54.Rb4 Kb1 55.Rb8 Ra2 
Pos 107    550.085.739    527.539.724 (95%)     0    0    2    0   00:01:18  25.00  5.76  54..Kb1 55.Rb6 b2 56.Kd1 Rd3 57.Ke2 Kc2 58.Rxb2 
Pos 108    694.112.743    680.803.041 (98%)     0    0    2    0   00:00:23  23.00  -5.62  55.Re4 b2 
Pos 109    526.797.541    504.684.973 (95%)     0    0    2    0   00:02:36  23.02  5.85  55..Ra7 56.Rb4 
Pos 110    359.722.284    334.955.713 (93%)     0    0    2    0   00:02:10  25.01  -5.63  56.Kc3 
Pos 111    544.390.874    509.936.572 (93%)     0    0    2    0   00:00:39  21.00  5.81  56..b2 57.Kc3 Ra3 58.Kd4 
Pos 112    811.555.876    784.436.049 (96%)     0    0    2    0   00:00:46  23.00  -5.65  57.Kc3 Ka1 58.Rxb2 Rc7 59.Kb3 Rb7 60.Kc3 Rxb2 
Pos 113    574.136.494    560.660.779 (97%)     0    0    2    0   00:02:25  23.00  6.38  57..Kc1 58.Rxb2 Rc7 59.Kb3 Rb7 60.Kc4 Kxb2 
Pos 114    421.824.255    412.618.653 (97%)     0    0    2    0   00:01:44  21.00  -5.72  58.Rxb2 Rc7 59.Kb3 Rb7 60.Kc4 Rxb2 61.Kc5 
Pos 115    578.629.581    566.415.289 (97%)     0    0    2    0   00:02:24  22.00  M 17  58..Rc7 59.Kb3 Rb7 60.Kc3 Rxb2 61.Kc4 Rc2 62.Kd5 
Pos 116    585.047.316    573.023.550 (97%)     0    0    2    0   00:02:24  20.00  -5.67  59.Kb3 Rb7 60.Kc3 Rxb2 61.Kc4 Rd2 62.Kc5 Kb2 
Pos 117    710.030.580    695.419.430 (97%)     0    0    2    0   00:02:45  20.00  5.88  59..Rb7 60.Kc3 Rxb2 61.Kd3 
Pos 118    184.686.345    180.977.930 (97%)     0    0    2    0   00:00:47  20.00  -M15  60.Kc3 Rxb2 61.Kc4 Rc2 62.Kd5 Kd1 63.Ke5 Rc5 
Pos 119    519.904.048    508.575.566 (97%)     0    0    2    0   00:02:16  21.00  M 13  60..Rxb2 61.Kc4 Kc2 62.Kd5 Rb5 63.Ke4 Kd2 64.Kd4 
Pos 120    197.516.274    192.682.611 (97%)     0    0    2    0   00:00:59  21.00  -M15  61.Kd4 Kd2 62.Ke5 Ke3 63.Ke6 Rb6 64.Kf7 Rb7 
Pos 121     94.516.016     92.303.761 (97%)     0    0    2    0   00:00:27  19.01  M 14  61..Kd2 62.Ke5 Rb5 63.Ke4 Rb4 64.Ke5 Ke3 65.Kd5 
Pos 122     44.490.726     43.511.986 (97%)     0    0    2    0   00:00:13  19.00  -M13  62.Ke4 Kc3 63.Kf5 Rf2 64.Ke4 Rb2 65.Kf5 Rf2 
Pos 123     88.710.878     86.529.144 (97%)     0    0    2    0   00:00:28  19.01  M 13  62..Rb4 63.Kd5 Kd3 64.Kc6 Ra4 65.Kd5 
Pos 124     53.120.828     51.866.203 (97%)     0    0    2    0   00:00:16  19.00  -M13  63.Kd5 Kd3 64.Ke6 Re4 65.Kd5 Rb4 66.Ke6 Re4 
Pos 125     43.995.240     42.970.081 (97%)     0    0    2    0   00:00:13  18.02  M 13  63..Kd3 64.Ke6 Kd4 65.Kf5 Kd5 66.Kg5 Ke5 67.Kh6 
Pos 126     19.276.083     18.809.795 (97%)     0    0    2    0   00:00:06  18.00  -M11  64.Ke5 Rb5 65.Kf4 Kd4 66.Kf3 
Pos 127     30.362.057     29.719.523 (97%)     0    0    2    0   00:00:09  18.00  M 13  64..Rb5 65.Kf4 Kd4 66.Kf3 Rf5 67.Kg4 Ke4 68.Kg3 
Pos 128      4.794.286      4.702.866 (98%)     0    0    2    0   00:00:01  15.00  -M 9  65.Kd6 Ke4 66.Kc6 Rd5 67.Kc7 Kd4 68.Kb7 Rc5 
Pos 129      4.747.062      4.662.636 (98%)     0    0    2    0   00:00:01  15.03  M 10  65..Ke4 66.Kc6 Rd5 67.Kc7 Ke5 68.Kc8 
Pos 130      3.668.755      3.597.077 (98%)     0    0    2    0   00:00:01  16.00  -M 9  66.Kc6 Rd5 67.Kb7 
Pos 131      3.209.236      3.140.611 (97%)     0    0    2    0   00:00:01  15.07  M 09  66..Rf5 67.Kd6 Re5 
Pos 132     12.906.180     12.661.133 (98%)     0    0    2    0   00:00:03  17.00  -M11  67.Kd6 Rd5 68.Kc7 Re5 69.Kc8 Rc5 70.Kd8 Rd5 
Pos 133      1.704.424      1.673.678 (98%)     0    0    2    0   00:00:00  14.00  M 09  67..Re5 68.Kc6 Rd5 69.Kc7 Kd4 70.Kc6 Kc4 71.Kb6 
Pos 134      2.104.545      2.067.046 (98%)     0    0    2    0   00:00:00  15.00  -M 9  68.Kc6 Rd5 69.Kb6 
Pos 135        623.976        613.617 (98%)     0    0    2    0   00:00:00  13.00  M 09  68..Rd5 69.Kb6 Ke5 70.Kc7 Ke6 71.Kc6 Rg5 72.Kb6 
Pos 136        493.110        484.611 (98%)     0    0    2    0   00:00:00  13.00  -M 7  69.Kb6 Kd4 
Pos 137        763.331        748.031 (97%)     0    0    2    0   00:00:00  13.00  M 09  69..Ke5 70.Kc6 Ke6 71.Kb6 Kd7 72.Ka7 Kc6 73.Ka6 
Pos 138        328.586        321.172 (97%)     0    0    2    0   00:00:00  12.00  -M 8  70.Kc6 Ke6 71.Kc7 Rd6 72.Kc8 Kd5 73.Kc7 Kc5 
Pos 139        191.228        186.669 (97%)     0    0    2    0   00:00:00  11.00  M 07  70..Ke6 71.Kc7 Rd6 72.Kc8 Rc6 73.Kb7 Kd6 74.Ka8 
Pos 140         18.401         17.831 (96%)     0    0    2    0   00:00:00   8.00  -5.64  71.Kc7 Rd6 72.Kc8 Rd7 73.Kb8 Ke5 74.Kc8 Ra7 
Pos 141         73.532         71.216 (96%)     0    0    2    0   00:00:00  10.00  M 06  71..Rd6 72.Kc8 Rc6 73.Kb7 Kd6 74.Kb8 Kd7 75.Kb7 
Pos 142         21.327         20.353 (95%)     0    0    2    0   00:00:00   9.00  -M 6  72.Kb8 Rd7 73.Kc8 Kd6 74.Kb8 Kc6 75.Kc8 Rd1 
Pos 143         83.349         80.799 (96%)     0    0    2    0   00:00:00  10.00  M 07  72..Rd7 73.Kc8 Kd6 
Pos 144         38.429         37.317 (97%)     0    0    2    0   00:00:00  10.00  -M 5  73.Kc8 Kd6 74.Kb8 Rc7 75.Ka8 Kc5 76.Kb8 Kb6 
Pos 145         28.223         27.412 (97%)     0    0    2    0   00:00:00   9.00  M 06  73..Kd6 74.Kb8 Rc7 75.Ka8 Rg7 76.Kb8 Kc6 77.Ka8 
Pos 146          6.349          6.174 (97%)     0    0    2    0   00:00:00   7.00  -5.72  74.Kb8 Rc7 75.Ka8 Rh7 76.Kb8 Kc6 77.Ka8 Kb8 
Pos 147          6.203          5.996 (96%)     0    0    2    0   00:00:00   7.00  M 05  74..Rc7 75.Ka8 Rh7 76.Kb8 Kc6 77.Ka8 Kb6 78.Kb8 
Pos 148          1.852          1.807 (97%)     0    0    2    0   00:00:00   6.00  -M 4  75.Ka8 Rh7 76.Kb8 Kc6 77.Ka8 Kb6 78.Kb8 Rh8 
Pos 149          2.792          2.712 (97%)     0    0    2    0   00:00:00   5.14  M 03  75..Kc5 76.Kb8 Kb6 77.Ka8 Rc8 
Pos 150            108            100 (92%)     0    0    2    0   00:00:00   3.00  -M 2  76.Kb8 Kb6 77.Ka8 Rc8 
Pos 151             74             66 (89%)     0    0    2    0   00:00:00   2.07  M 02  76..Kb6 77.Ka8 Rc8 
Pos 152             35             30 (86%)     0    0    2    0   00:00:00   2.00  -M 1  77.Ka8 Rc8 
Pos 153              9              9 (100%)     0    0    2    0   00:00:00   1.16  Mate Rc8 
90% of coding is debugging, the other 10% is writing bugs.