Designing an analysis friendly Stockfish?

Code, algorithms, languages, construction...
User avatar
Uly
Posts: 838
Joined: Thu Jun 10, 2010 5:33 am

Re: Designing an analysis friendly Stockfish?

Post by Uly » Mon Jan 31, 2011 11:03 am

Prima wrote:Just out of curiosity, what does "PA_G" mean in the updated Stockfish 2.0.1 build?
Preserve Analysis G (The G is the alphabetical version).

Thanks everyone for your efforts! Stockfish is now showing the wished behavior! Here's cross posts from RF:
Banned for Life wrote:Analyzing with the modified Stockfish is now a pleasure, whereas before it was maddening to watch the evaluations jump up and down, and as you mentioned, if you moved along the PV, the engine would need to fill in the holes in the tt, which seemed like a waste of time. It would be interesting to test this configuration and see how it compares in game play against the default, as Dr. Hyatt's claim that using exact entries adds a few Elo points certainly seems reasonable.

The second step that was discussed was putting in what is referred to in Rybka as "Preserve Analysis" where hash replacement is no longer weighted (or more lightly weighted) by generation. This will allow moving to different root locations without deemphasizing current hash entries. Of course this is only suitable for analysis and will require the operator to manually clear the hash when moving to a different position.
I see what he means, for instance, the root (opening position) shows the wished behavior:

21/26 0:06 +0.40 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.dxe5 Be7
22/26 0:08 +0.40 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.dxe5 Be7

(e4 forced)

21/25 0:00 +0.40 1...e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.dxe5 Be7
22/05 0:03 +0.32++ 1...e5 2.Nf3 Nf6 3.d4 Nxe4 (7.694.059) 2499
22/19 0:07 +0.28 1...e5 2.Nf3 Nf6 3.d4 Nxe4 4.Nxe5 d6 5.Nf3 d5 6.Bd3

Back to root

22/20 0:00 +0.28 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Nxe5 d6 5.Nf3 d5
23/08 0:01 +0.28 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Nxe5 d6 (3.746.798)

However, it's enough for one to analyze some other position

(1. e4 Nc6 2. d4 d5 3. e5 Bf5 4. Ne2 e6 5. Ng3)

18/21 0:02 +0.16 5...Bg6 6.Bb5 Qd7 7.O-O f6 8.Nd2 a6 9.Bxc6 Qxc6
19/21 0:02 +0.16 5...Bg6 6.Bb5 Qd7 7.O-O f6 8.Nd2 a6 9.Bxc6 Qxc6
20/22 0:03 +0.24-- 5...Bg6 6.Bb5 Qd7 7.O-O f6 8.Nd2 a6 9.Bxc6 Qxc6
20/23 0:05 +0.12 5...Bg6 6.Bb5 Qd7 7.O-O a6 8.Bxc6 Qxc6 9.c3 O-O-O
21/20 0:09 +0.16 5...Bg6 6.Bb5 Qd7 7.O-O a6 8.Bd3 f6 9.f4 O-O-O
22/22 0:13 +0.12 5...Bg6 6.Bb5 Qd7 7.O-O a6 8.Bd3 f6 9.f4 O-O-O
23/21 0:17 +0.12 5...Bg6 6.Bb5 Qd7 7.O-O a6 8.Bd3 f6 9.f4 O-O-O

For Stockfish to forget all the other analysis

(opening position)

20/18 0:04 +0.16-- 1.Nf3 Nf6 2.d4 e6 3.e3 d5 4.Bd3 Be7 5.O-O O-O 6.c4
20/23 0:05 +0.24 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.Nc3 Bd6 5.O-O O-O
21/23 0:07 +0.24 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bd6 5.Nc3 O-O
22/19 0:09 +0.32++ 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bd6 5.d4 Qe7
22/23 0:10 +0.40++ 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.Qe2 Qe7
22/24 0:13 +0.48 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 Be7
23/22 0:26 +0.24-- 1.e4 e6 2.Nf3 d5 3.exd5 exd5 4.d4 Nf6 5.Bb5+ c6
23/30 0:36 +0.20 1.e4 e6 2.Nf3 d5 3.exd5 exd5 4.d4 Nf6 5.Bb5+ c6

So it seems the changes made improve behavior overall and could even be worth some elo, but going beyond that, one would like for Stockfish to protect stored entries (in the example, one would like Stockfish to remember that e4 is 0.28 at depth 23, regardless of the positions analyzed afterwards, until the hash is manually cleared).

Of course, one possible solution of this could be implementing learning (saving the results to disk, not the entire hash, just the PV, score and depth of the position analized).

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Designing an analysis friendly Stockfish?

Post by Jeremy Bernstein » Mon Jan 31, 2011 12:13 pm

I just wanted to chime in and congratulate everyone on this effort. Great work!

Jeremy

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Designing an analysis friendly Stockfish?

Post by Jeremy Bernstein » Mon Jan 31, 2011 2:42 pm

For OSX:

http://www.expr-i0.net/stockfish_pag_osx.zip

Intel 32- and 64-bit gcc profiled builds in the archive.

Prima
Posts: 328
Joined: Tue Dec 14, 2010 6:12 am

Re: Designing an analysis friendly Stockfish?

Post by Prima » Tue Feb 01, 2011 4:39 am

Uly wrote:
Prima wrote:Just out of curiosity, what does "PA_G" mean in the updated Stockfish 2.0.1 build?
Preserve Analysis G (The G is the alphabetical version).
Thanks Uly for the clarification.

gaard
Posts: 127
Joined: Thu Jun 10, 2010 1:39 am
Real Name: Martin Wyngaarden
Location: Holland, Michigan

Re: Designing an analysis friendly Stockfish?

Post by gaard » Tue Feb 01, 2011 5:32 am

Uly wrote:
Prima wrote:Just out of curiosity, what does "PA_G" mean in the updated Stockfish 2.0.1 build?
Preserve Analysis G (The G is the alphabetical version).

Thanks everyone for your efforts! Stockfish is now showing the wished behavior! Here's cross posts from RF:
Banned for Life wrote:Analyzing with the modified Stockfish is now a pleasure, whereas before it was maddening to watch the evaluations jump up and down, and as you mentioned, if you moved along the PV, the engine would need to fill in the holes in the tt, which seemed like a waste of time. It would be interesting to test this configuration and see how it compares in game play against the default, as Dr. Hyatt's claim that using exact entries adds a few Elo points certainly seems reasonable.

The second step that was discussed was putting in what is referred to in Rybka as "Preserve Analysis" where hash replacement is no longer weighted (or more lightly weighted) by generation. This will allow moving to different root locations without deemphasizing current hash entries. Of course this is only suitable for analysis and will require the operator to manually clear the hash when moving to a different position.
I see what he means, for instance, the root (opening position) shows the wished behavior:

21/26 0:06 +0.40 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.dxe5 Be7
22/26 0:08 +0.40 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.dxe5 Be7

(e4 forced)

21/25 0:00 +0.40 1...e5 2.Nf3 Nf6 3.d4 Nxe4 4.Bd3 d5 5.dxe5 Be7
22/05 0:03 +0.32++ 1...e5 2.Nf3 Nf6 3.d4 Nxe4 (7.694.059) 2499
22/19 0:07 +0.28 1...e5 2.Nf3 Nf6 3.d4 Nxe4 4.Nxe5 d6 5.Nf3 d5 6.Bd3

Back to root

22/20 0:00 +0.28 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Nxe5 d6 5.Nf3 d5
23/08 0:01 +0.28 1.e4 e5 2.Nf3 Nf6 3.d4 Nxe4 4.Nxe5 d6 (3.746.798)

However, it's enough for one to analyze some other position

(1. e4 Nc6 2. d4 d5 3. e5 Bf5 4. Ne2 e6 5. Ng3)

18/21 0:02 +0.16 5...Bg6 6.Bb5 Qd7 7.O-O f6 8.Nd2 a6 9.Bxc6 Qxc6
19/21 0:02 +0.16 5...Bg6 6.Bb5 Qd7 7.O-O f6 8.Nd2 a6 9.Bxc6 Qxc6
20/22 0:03 +0.24-- 5...Bg6 6.Bb5 Qd7 7.O-O f6 8.Nd2 a6 9.Bxc6 Qxc6
20/23 0:05 +0.12 5...Bg6 6.Bb5 Qd7 7.O-O a6 8.Bxc6 Qxc6 9.c3 O-O-O
21/20 0:09 +0.16 5...Bg6 6.Bb5 Qd7 7.O-O a6 8.Bd3 f6 9.f4 O-O-O
22/22 0:13 +0.12 5...Bg6 6.Bb5 Qd7 7.O-O a6 8.Bd3 f6 9.f4 O-O-O
23/21 0:17 +0.12 5...Bg6 6.Bb5 Qd7 7.O-O a6 8.Bd3 f6 9.f4 O-O-O

For Stockfish to forget all the other analysis

(opening position)

20/18 0:04 +0.16-- 1.Nf3 Nf6 2.d4 e6 3.e3 d5 4.Bd3 Be7 5.O-O O-O 6.c4
20/23 0:05 +0.24 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.Nc3 Bd6 5.O-O O-O
21/23 0:07 +0.24 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bd6 5.Nc3 O-O
22/19 0:09 +0.32++ 1.e4 e5 2.Nf3 Nc6 3.Bb5 Nf6 4.O-O Bd6 5.d4 Qe7
22/23 0:10 +0.40++ 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.Qe2 Qe7
22/24 0:13 +0.48 1.e4 e5 2.Nf3 Nf6 3.Nxe5 d6 4.Nf3 Nxe4 5.d4 Be7
23/22 0:26 +0.24-- 1.e4 e6 2.Nf3 d5 3.exd5 exd5 4.d4 Nf6 5.Bb5+ c6
23/30 0:36 +0.20 1.e4 e6 2.Nf3 d5 3.exd5 exd5 4.d4 Nf6 5.Bb5+ c6

So it seems the changes made improve behavior overall and could even be worth some elo, but going beyond that, one would like for Stockfish to protect stored entries (in the example, one would like Stockfish to remember that e4 is 0.28 at depth 23, regardless of the positions analyzed afterwards, until the hash is manually cleared).

Of course, one possible solution of this could be implementing learning (saving the results to disk, not the entire hash, just the PV, score and depth of the position analized).
My pleasure. If we could just get it tested now :) I've PM'ed Ingo asking him so I'll just have to wait and see.

User avatar
Uly
Posts: 838
Joined: Thu Jun 10, 2010 5:33 am

Re: Designing an analysis friendly Stockfish?

Post by Uly » Tue Feb 01, 2011 10:16 am

I still haven't seen a single game of Stockfish PAG, so I played a 4 games micro-match at 1+3 time controls. I know about the statistics and that the changes weren't made for games, but Stockfish PAG didn't seem to have any problems against Default and won a game (4CPU 64bit 2 Bookless 2 1.e4).

[Event "1 Minutes/Game + 3 Seconds/Move"]
[Site "Engine Match"]
[Date "2011.02.01"]
[Round "1"]
[White "Stockfish 2.0.1 JA 64bit"]
[Black "Stockfish 2.0.1 PAG"]
[Result "1/2-1/2"]

1. e4 {+0.44/20 6s} e5 {+0.24/19 4s} 2. Nf3 {+0.28/19 3s}
Nf6 {+0.28/20 5s} 3. d4 {+0.40/20 7s (Nxe5)} exd4 {+0.40/19
4s} 4. e5 {+0.48/20 4s} Ne4 {+0.40/19 3s} 5. Qxd4 {+0.56/20
4s} f5 {+0.36/20 3s} 6. exf6 {+0.52/19 3s (Be3)} Nxf6
{+0.40/16 0s} 7. Nc3 {+0.56/19 3s (Bd3)} Nc6 {+0.52/18 5s}
8. Qd3 {+0.60/19 4s} Bb4 {+0.40/19 5s (Be7)} 9. Be3
{+0.76/19 9s (a3)} O-O {+0.60/18 4s} 10. O-O-O {+0.40/19
2s} d6 {+0.36/19 6s} 11. Ng5 {+0.36/17 3s (Kb1)} Ne5
{+0.48/18 3s (Bxc3)} 12. Qd4 {+0.56/18 3s} Bxc3 {+0.48/21
4s} 13. Qxc3 {+0.36/19 4s} c6 {+0.48/21 5s} 14. f4
{+0.44/18 3s} Nf7 {+0.48/19 7s} 15. Qa3 {+0.32/19 3s} Qc7
{+0.36/17 3s (d5)} 16. Bd3 {+0.32/18 5s (h4)} Nxg5
{+0.36/19 5s} 17. fxg5 {+0.20/19 3s} Nd5 {+0.20/21 6s}
18. Bd2 {+0.32/20 3s} Bf5 {+0.12/21 4s} 19. Rhf1 {+0.36/19
3s (Bxf5)} Bxd3 {+0.04/19 4s} 20. Qxd3 {+0.28/20 3s} Qe7
{+0.48/20 4s} 21. g6 {+0.40/19 7s} hxg6 {+0.28/20 3s}
22. Qxg6 {+0.32/20 3s} Rf6 {+0.24/21 3s} 23. Rxf6 {+0.24/21
4s} Nxf6 {+0.24/21 4s} 24. Bc3 {+0.20/20 3s} d5 {+0.20/23
3s} 25. Bxf6 {+0.32/22 6s} Qxf6 {+0.16/22 3s} 26. Qxf6
{+0.20/23 4s} gxf6 {+0.16/23 1s} 27. c4 {+0.16/23 7s (g3)}
dxc4 {+0.24/21 3s} 28. Rd7 {+0.28/23 3s} b5 {+0.12/23 6s}
29. Rc7 {+0.16/21 4s} Re8 {+0.20/24 3s} 30. Kd2 {+0.20/22
4s} Rd8+ {+0.20/24 4s} 31. Kc3 {+0.20/23 3s} Rd3+ {+0.20/24
4s} 32. Kc2 {+0.20/25 3s} Rd6 {+0.20/24 3s (Re3)} 33. Rxa7
{+0.20/24 3s} f5 {+0.32/24 3s} 34. a4 {+0.28/24 4s} bxa4
{+0.36/25 6s} 35. Rxa4 {+0.48/24 3s} Rh6 {+0.20/26 4s}
36. Ra5 {+0.36/26 3s} Rxh2 {+0.20/30 4s} 37. Rxf5 {+0.20/28
3s} Rxg2+ {+0.12/29 4s} 38. Kc3 {+0.08/28 3s} Kg7 {+0.08/30
2s} 39. Rf4 {0.00/29 3s} Rh2 {0.00/30 4s (Re2)} 40. Rd4
{0.00/30 3s (Rxc4)} Rf2 {0.00/32 2s (Rg2)} 41. Rxc4
{0.00/33 3s} Rf6 {0.00/36 4s} 42. Kd3 {0.00/36 3s (Kb4)}
Kf7 {0.00/34 2s} 43. Rc2 {0.00/38 3s (Kd4)} Ke7 {0.00/38
3s} 44. Ke4 {0.00/41 2s} Re6+ {0.00/41 3s} 45. Kd4 {0.00/44
4s} Kd6 {0.00/44 3s (Rd6+)} 46. b3 {0.00/43 3s (b4)} c5+
{0.00/42 3s} 47. Rxc5 {0.00/48 2s} Re4+ {0.00/48 2s}
48. Kxe4 {0.00/54 4s} Kxc5 {0.00/49 0s} 49. b4+ {0.00/90 2s
(Kd3)} Kxb4 {0.00/100 0s} 1/2-1/2

[Event "1 Minutes/Game + 3 Seconds/Move"]
[Site "Engine Match"]
[Date "2011.02.01"]
[Round "2"]
[White "Stockfish 2.0.1 PAG"]
[Black "Stockfish 2.0.1 JA 64bit"]
[Result "1-0"]

1. e4 {+0.32/18 3s} e5 {+0.24/19 5s (e6)} 2. Nf3 {+0.44/19
3s} Nf6 {+0.32/20 3s (Nc6)} 3. Nxe5 {+0.20/19 4s} d6
{+0.48/20 5s} 4. Nf3 {+0.56/19 3s} Nxe4 {+0.44/20 3s} 5. d4
{+0.48/19 4s} Be7 {+0.56/20 6s (Nc6)} 6. Bd3 {+0.52/20 8s}
Nf6 {+0.48/20 3s (d5)} 7. O-O {+0.52/20 3s} O-O {+0.44/19
3s} 8. c4 {+0.64/20 8s} Nc6 {+0.44/20 6s} 9. Nc3 {+0.52/20
5s (d5)} Bg4 {+0.40/20 4s (d5)} 10. h3 {+0.52/20 7s} Bxf3
{+0.24/20 7s} 11. Qxf3 {+0.52/20 5s} Nxd4 {+0.20/20 7s}
12. Qxb7 {+0.40/21 6s} Ne6 {+0.28/21 4s} 13. Qb3 {+0.32/20
10s (Bc2)} Nc5 {+0.32/19 5s} 14. Qc2 {+0.36/19 3s} Nxd3
{+0.20/18 2s} 15. Qxd3 {+0.36/19 0s} Re8 {+0.40/18 2s}
16. Be3 {+0.28/18 3s} Nd7 {+0.40/19 11s} 17. Rad1 {+0.44/19
4s} Ne5 {+0.36/18 6s} 18. Qe2 {+0.52/19 4s} c6 {+0.48/17
3s} 19. Ne4 {+0.40/18 5s} Qc7 {+0.56/19 3s} 20. Rfe1
{+0.24/18 4s (Bd4)} f5 {+0.24/18 2s} 21. Ng3 {+0.32/19 4s}
g6 {+0.24/19 3s} 22. Bd4 {+0.24/20 6s (b3)} Bf6 {+0.28/20
3s} 23. Qd2 {+0.28/20 2s} Re6 {+0.36/20 4s} 24. b3
{+0.28/21 2s} Rae8 {+0.20/22 4s} 25. Ne2 {+0.12/20 6s} a6
{+0.24/20 6s (Qb7)} 26. Nf4 {+0.60/19 4s (Bc3)} R6e7
{+0.64/18 3s} 27. Nd3 {+0.52/21 3s (Bc3)} Nxd3 {+0.64/17 2s
(Nxc4)} 28. Rxe7 {+0.60/15 0s} Bxe7 {+0.60/20 3s (Qxe7)}
29. Qxd3 {+0.64/16 0s} Bf8 {+0.60/20 3s} 30. Qd2 {+0.56/19
3s (Bc3)} Qe7 {+0.68/20 5s (Qb7)} 31. Be3 {+0.56/22 4s} Qb7
{+0.68/20 4s} 32. Bf4 {+0.56/22 11s} Re6 {+0.48/20 3s}
33. Qc3 {+0.72/22 3s} Be7 {+0.48/19 4s (Qe7)} 34. Qf3
{+0.68/19 3s} a5 {+0.56/20 4s (Qb6)} 35. Bd2 {+0.72/17 2s
(g3)} Qb6 {+0.84/20 4s (Bd8)} 36. Bc3 {+0.84/20 2s} Bh4
{+0.84/18 3s} 37. g3 {+0.84/20 3s (Qf4)} Bf6 {+1.01/20 3s}
38. Bxf6 {+1.01/20 3s} Rxf6 {+0.84/16 0s} 39. Re1 {+1.01/21
3s} Kf7 {+1.05/19 2s} 40. Qe2 {+1.09/20 2s} Qd8 {+1.01/20
2s} 41. Qe3 {+1.13/22 2s} c5 {+1.01/20 2s (Kg8)} 42. Kg2
{+1.05/18 2s (Qe2)} Kg7 {+1.01/20 2s} 43. Qf3 {+1.09/20 3s
(Re2)} Rf7 {+1.09/18 2s} 44. Rd1 {+1.05/20 2s} Qc7
{+1.05/20 3s (Rf6)} 45. Qc3+ {+1.05/17 3s} Rf6 {+1.01/21 3s
(Kg8)} 46. Re1 {+1.01/19 2s} Kf7 {+1.01/20 2s} 47. Qe3
{+0.96/20 2s} Qd8 {+0.88/20 2s} 48. Kh2 {+1.05/21 4s (Re2)}
Kg7 {+0.96/20 3s (Qf8)} 49. Qd2 {+1.09/21 3s} h6 {+1.09/20
2s (Rf7)} 50. Kg2 {+1.01/19 3s (f3)} f4 {+1.25/20 6s (g5)}
51. gxf4 {+1.17/18 2s} Kf8 {+1.25/19 1s (Kf7)} 52. Kg3
{+1.37/19 2s} Kf7 {+1.37/20 4s} 53. h4 {+1.41/22 3s (f3)}
Kg7 {+1.49/20 2s} 54. Qc3 {+1.49/23 3s (Qd3)} Kf8 {+1.41/20
2s} 55. Qf3 {+1.45/21 2s (Qd3)} Kg7 {+1.65/20 3s (Rf5)}
56. Qc6 {+1.69/21 2s} Kf8 {+1.69/22 2s (Rf7)} 57. Re2
{+1.73/21 2s (Re4)} h5 {+1.53/22 2s (Qb8)} 58. Re1
{+1.69/22 4s (Re4)} Qb8 {+1.57/22 3s} 59. Re4 {+1.69/23 3s
(Re5)} Qd8 {+1.53/22 4s} 60. Re2 {+1.57/24 3s (Re3)} Rxf4
{+1.89/21 3s (Qb8)} 61. Re8+ {+3.27/20 2s} Qxe8 {+1.73/15
0s} 62. Qxe8+ {+3.63/23 3s} Kxe8 {+2.86/15 0s} 63. Kxf4
{+3.79/23 1s} Ke7 {+9.69/23 5s (Kf7)} 64. Kg5 {+6.22/22 2s}
Kf7 {+11.07/26 3s} 65. f4 {+6.14/22 0s} a4 {+12.32/27 4s}
66. bxa4 {+7.03/21 1s (f5)} d5 {+6.94/20 2s} 67. cxd5
{+7.71/21 1s} c4 {+10.34/21 2s} 68. a5 {+11.51/22 3s} c3
{+15.19/22 5s} 69. a6 {+15.23/22 5s} c2 {+17.17/21 3s}
70. a7 {+17.81/22 7s} c1=Q {+17.65/20 1s} 71. a8=Q
{+6.54/11 0s} Qc7 {+18.38/22 2s (Qg1+)} 72. Qh8 {+77.07/22
3s} Qe7+ {+19.39/20 2s} 73. Kh6 {+77.08/23 0s} Qxh4
{+21.29/20 5s (Qb4)} 74. Qg7+ {+89.14/22 2s} Ke8 {+3.87/6
0s} 75. Qxg6+ {+89.14/22 4s} Kd7 {+28.84/21 4s} 76. Qc6+
{+89.14/21 4s} Kd8 {+28.40/20 2s} 77. Qd6+ {+20.32/18 3s}
Kc8 {+17.69/18 3s} 78. f5 {+89.24/18 2s} Qf2 {+77.08/16 2s}
79. f6 {+89.44/21 3s (Qe6+)} Qd2+ {+89.04/18 2s (Qe3+)}
80. Kh7 {+65.93/18 3s (Kxh5)} Qd3+ {+90.24/16 2s (Qc2+)}
81. Kh8 {+92.00/18 3s} Qd4 {+101.72/19 2s (Kb7)} 82. Qf8+
{+107.91/19 3s} Kc7 {+129.57/19 6s} 83. Qg7+ {+M16/14 2s}
Kd6 {+M15/17 2s} 84. f7 {+M15/6 0s} Qf4 {+M15/17 3s}
85. f8=Q+ {+M14/6 0s} Qxf8+ {+M12/17 0s} 86. Qxf8+ {+M13/12
0s} Kxd5 {+M10/15 0s} 87. Kg7 {+M12/6 0s (a4)} h4 {+M11/15
0s (Kc4)} 88. Qd8+ {+M11/6 0s} Kc4 {+M9/14 0s (Kc5)}
89. Qxh4+ {+M10/11 0s} Kd3 {+M8/11 0s (Kb5)} 90. a4 {+M8/6
0s} Kd2 {+M7/10 0s (Kc2)} 91. a5 {+M7/7 0s} Kd1 {+M6/8 0s
(Kc2)} 92. a6 {+M6/6 0s} Kd2 {+M5/7 0s (Kc2)} 93. a7 {+M5/6
0s} Ke2 {+M4/6 0s (Ke3)} 94. a8=Q {+M4/6 0s} Kd3 {+M3/6 0s}
95. Qhe4+ {+M3/6 0s (Qb4)} Kc3 {+M2/6 0s (Kd2)} 96. Qa1+
{+M2/6 0s} Kd2 {+M1/6 0s (Kb3)} 97. Qae1# {+M1/6 0s} 1-0

[Event "1 Minutes/Game + 3 Seconds/Move"]
[Site "Engine Match"]
[Date "2011.02.01"]
[Round "3"]
[White "Stockfish 2.0.1 JA 64bit"]
[Black "Stockfish 2.0.1 PAG"]
[Result "1/2-1/2"]

1. e4 e5 {+0.28/19 4s} 2. Nf3 {+0.48/19 3s} Nf6 {+0.52/20
8s} 3. d4 {+0.36/19 4s (Nxe5)} exd4 {+0.36/19 4s} 4. e5
{+0.48/20 5s} Ne4 {+0.52/21 10s} 5. Qxd4 {+0.56/20 3s} d5
{+0.60/20 3s (f5)} 6. exd6 {+0.68/20 4s} Nxd6 {+0.40/21 2s}
7. Bd3 {+0.56/21 4s} Nc6 {+0.60/21 4s} 8. Qf4 {+0.68/20 5s}
Qf6 {+0.44/20 4s (Qe7+)} 9. Nc3 {+0.60/19 5s (Qxf6)} Bf5
{+0.40/20 13s} 10. O-O {+0.36/18 3s (Bxf5)} O-O-O {+0.16/19
3s (Bxd3)} 11. Qa4 {+0.48/19 5s (Nh4)} Bxd3 {+0.28/18 3s}
12. cxd3 {+0.28/16 0s} h6 {+0.12/20 4s (Qf5)} 13. Bf4
{+0.16/17 3s (Re1)} g5 {+0.28/19 3s} 14. Be3 {+0.16/18 5s}
a6 {+0.12/18 4s} 15. d4 {0.00/19 6s} Bg7 {-0.12/18 5s}
16. Rac1 {0.00/18 3s (d5)} Qg6 {0.00/20 4s} 17. Qb3
{0.00/19 3s} Na5 {-0.16/20 7s} 18. Qb4 {0.00/22 3s (Qa4)}
Nc6 {0.00/23 2s} 19. Qb3 {0.00/25 3s} Na5 {0.00/22 3s}
20. Qb4 {0.00/26 4s (Qa4)} Nc6 {0.00/26 11s} 21. Qb3
{0.00/27 6s (Qa4)} 1/2-1/2
[Event "1 Minutes/Game + 3 Seconds/Move"]
[Site "Engine Match"]
[Date "2011.02.01"]
[Round "4"]
[White "Stockfish 2.0.1 PAG"]
[Black "Stockfish 2.0.1 JA 64bit"]
[Result "1/2-1/2"]

1. e4 e5 {+0.24/18 4s} 2. Nf3 {+0.52/19 4s} Nc6 {+0.36/20
7s (Nf6)} 3. Bb5 {+0.44/20 4s} a6 {+0.48/20 3s} 4. Bxc6
{+0.52/21 4s} dxc6 {+0.44/21 3s} 5. O-O {+0.52/21 3s} Bg4
{+0.52/22 3s} 6. h3 {+0.48/21 5s} Bxf3 {+0.52/22 3s}
7. Qxf3 {+0.40/22 6s} Bd6 {+0.52/21 7s (Qf6)} 8. Qb3
{+0.44/20 4s} b6 {+0.36/20 3s} 9. d3 {+0.36/21 7s} Ne7
{+0.36/22 4s} 10. Bg5 {+0.36/21 6s} Qd7 {+0.28/22 4s (O-O)}
11. Bxe7 {+0.32/22 4s (Nd2)} Bxe7 {+0.28/23 3s} 12. Nd2
{+0.32/23 4s} O-O {+0.24/23 3s} 13. Nf3 {+0.24/22 7s} Bf6
{+0.24/24 4s} 14. Rfe1 {+0.32/23 4s (Qc4)} a5 {+0.28/21 3s
(Rad8)} 15. Rad1 {+0.24/21 3s} c5 {+0.32/22 3s (Rfd8)}
16. Qd5 {+0.28/22 4s} Qe7 {+0.32/23 13s (Qb5)} 17. Qc6
{+0.32/21 4s} Rfd8 {+0.24/22 2s (a4)} 18. g3 {+0.32/23 7s}
Rab8 {+0.32/24 4s (Ra7)} 19. Kg2 {+0.32/22 4s (Qa4)} Rd6
{+0.40/21 3s} 20. Qa4 {+0.36/23 4s} Rbd8 {+0.32/19 3s
(Ra8)} 21. Rh1 {+0.44/20 3s} Bg5 {+0.36/20 3s} 22. Qc4
{+0.40/19 3s} Re8 {+0.36/20 4s (Re6)} 23. Qc3 {+0.36/20 2s
(Qb3)} f6 {+0.32/20 4s (Re6)} 24. b3 {+0.32/18 5s (a3)} Qe6
{+0.28/19 12s (Rdd8)} 25. Rhf1 {+0.32/19 5s (h4)} Rdd8
{+0.20/19 3s (Qf7)} 26. a3 {+0.36/20 5s (Ra1)} Bh6
{+0.24/18 3s (Ra8)} 27. Nh2 {+0.36/18 4s} Bg5 {+0.28/19 2s}
28. Rde1 {+0.36/19 4s} h5 {+0.28/20 4s} 29. Nf3 {+0.32/21
4s} Bh6 {+0.12/21 11s (Rf8)} 30. Nh4 {+0.24/21 2s (Qc4)}
Bg5 {+0.36/22 2s} 31. Nf5 {+0.40/22 3s} g6 {+0.20/21 2s}
32. f4 {+0.36/22 3s} Bxf4 {0.00/21 3s} 33. gxf4 {+0.04/22
9s} gxf5 {+0.04/22 5s} 34. fxe5 {0.00/22 3s} Qxe5 {0.00/22
2s} 35. Qxe5 {0.00/24 3s} Rxe5 {+0.24/24 4s} 36. Rxf5
{+0.08/25 3s} Rxf5 {0.00/23 2s} 37. exf5 {+0.28/20 0s} a4
{+0.20/25 2s} 38. bxa4 {+0.12/26 3s} c4 {+0.16/25 4s}
39. dxc4 {+0.12/27 3s} Rd2+ {+0.16/25 2s} 40. Kg3 {+0.28/28
3s} Rxc2 {0.00/27 3s} 41. Kh4 {+0.28/26 2s} Kf7 {0.00/28
2s} 42. Rd1 {+0.20/26 2s (Kxh5)} Ke7 {0.00/28 3s} 43. Kxh5
{+0.16/28 4s} Rc3 {0.00/28 2s} 44. c5 {+0.16/28 3s (Re1+)}
Rxh3+ {+0.20/26 2s} 45. Kg4 {+0.20/31 2s} Rxa3 {+0.20/28
2s} 46. c6 {+0.20/28 2s} Rxa4+ {+0.20/29 2s (Ke8)} 47. Kh5
{0.00/29 2s} Rc4 {+0.20/29 2s} 48. Rd7+ {0.00/31 2s} Ke8
{0.00/31 3s} 49. Rxc7 {0.00/35 3s} Kd8 {0.00/36 2s} 50. Rf7
{0.00/36 3s} Rxc6 {0.00/40 2s} 51. Kg6 {0.00/43 2s} Ke8
{0.00/46 2s} 52. Rxf6 {0.00/49 3s} Rxf6+ {0.00/49 2s}
53. Kxf6 {0.00/49 0s} Kf8 {0.00/53 2s} 54. Ke5 {0.00/51 2s
(Ke6)} Kf7 {0.00/57 2s (Ke7)} 55. Kd5 {0.00/56 3s (Ke4)}
Kf6 {0.00/60 2s} 56. Kd4 {0.00/59 2s} Kxf5 {0.00/64 2s}
57. Kc3 {0.00/87 2s (Kd5)} b5 {0.00/100 0s} 58. Kb2
{0.00/100 1s (Kd4)} b4 {0.00/100 0s (Ke5)} 59. Ka1
{0.00/100 0s (Kc2)} b3 {0.00/100 0s} 60. Kb1 {0.00/100 0s}
b2 {0.00/100 0s} 61. Kxb2 {0.00/100 0s} 1/2-1/2

I think it's possibles that these changes become default in the next official release, which would be a triumph of common sense! :)

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Designing an analysis friendly Stockfish?

Post by BB+ » Tue Feb 01, 2011 10:18 am

There's some way to give a bunch of pgns on one board. I forget what it is. KLO always does it. EDIT: Looks like you just put "[/pgn]" at the end of the last game, and not after the others.

Probably too much to ask, but can you get average depth (and NPS for those who care) stats from these games (or more ideally, from a larger set of games)?

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Designing an analysis friendly Stockfish?

Post by Jeremy Bernstein » Tue Feb 01, 2011 10:29 am

BB+ wrote:There's some way to give a bunch of pgns on one board. I forget what it is. KLO always does it. EDIT: Looks like you just put "[/pgn]" at the end of the last game, and not after the others.

Probably too much to ask, but can you get average depth (and NPS for those who care) stats from these games (or more ideally, from a larger set of games)?
Exactly. Then you get a games menu above the board. In this case:


[Event "1 Minutes/Game + 3 Seconds/Move"]
[Site "Engine Match"]
[Date "2011.02.01"]
[Round "1"]
[White "Stockfish 2.0.1 JA 64bit"]
[Black "Stockfish 2.0.1 PAG"]
[Result "1/2-1/2"]

1. e4 {+0.44/20 6s} e5 {+0.24/19 4s} 2. Nf3 {+0.28/19 3s}
Nf6 {+0.28/20 5s} 3. d4 {+0.40/20 7s (Nxe5)} exd4 {+0.40/19
4s} 4. e5 {+0.48/20 4s} Ne4 {+0.40/19 3s} 5. Qxd4 {+0.56/20
4s} f5 {+0.36/20 3s} 6. exf6 {+0.52/19 3s (Be3)} Nxf6
{+0.40/16 0s} 7. Nc3 {+0.56/19 3s (Bd3)} Nc6 {+0.52/18 5s}
8. Qd3 {+0.60/19 4s} Bb4 {+0.40/19 5s (Be7)} 9. Be3
{+0.76/19 9s (a3)} O-O {+0.60/18 4s} 10. O-O-O {+0.40/19
2s} d6 {+0.36/19 6s} 11. Ng5 {+0.36/17 3s (Kb1)} Ne5
{+0.48/18 3s (Bxc3)} 12. Qd4 {+0.56/18 3s} Bxc3 {+0.48/21
4s} 13. Qxc3 {+0.36/19 4s} c6 {+0.48/21 5s} 14. f4
{+0.44/18 3s} Nf7 {+0.48/19 7s} 15. Qa3 {+0.32/19 3s} Qc7
{+0.36/17 3s (d5)} 16. Bd3 {+0.32/18 5s (h4)} Nxg5
{+0.36/19 5s} 17. fxg5 {+0.20/19 3s} Nd5 {+0.20/21 6s}
18. Bd2 {+0.32/20 3s} Bf5 {+0.12/21 4s} 19. Rhf1 {+0.36/19
3s (Bxf5)} Bxd3 {+0.04/19 4s} 20. Qxd3 {+0.28/20 3s} Qe7
{+0.48/20 4s} 21. g6 {+0.40/19 7s} hxg6 {+0.28/20 3s}
22. Qxg6 {+0.32/20 3s} Rf6 {+0.24/21 3s} 23. Rxf6 {+0.24/21
4s} Nxf6 {+0.24/21 4s} 24. Bc3 {+0.20/20 3s} d5 {+0.20/23
3s} 25. Bxf6 {+0.32/22 6s} Qxf6 {+0.16/22 3s} 26. Qxf6
{+0.20/23 4s} gxf6 {+0.16/23 1s} 27. c4 {+0.16/23 7s (g3)}
dxc4 {+0.24/21 3s} 28. Rd7 {+0.28/23 3s} b5 {+0.12/23 6s}
29. Rc7 {+0.16/21 4s} Re8 {+0.20/24 3s} 30. Kd2 {+0.20/22
4s} Rd8+ {+0.20/24 4s} 31. Kc3 {+0.20/23 3s} Rd3+ {+0.20/24
4s} 32. Kc2 {+0.20/25 3s} Rd6 {+0.20/24 3s (Re3)} 33. Rxa7
{+0.20/24 3s} f5 {+0.32/24 3s} 34. a4 {+0.28/24 4s} bxa4
{+0.36/25 6s} 35. Rxa4 {+0.48/24 3s} Rh6 {+0.20/26 4s}
36. Ra5 {+0.36/26 3s} Rxh2 {+0.20/30 4s} 37. Rxf5 {+0.20/28
3s} Rxg2+ {+0.12/29 4s} 38. Kc3 {+0.08/28 3s} Kg7 {+0.08/30
2s} 39. Rf4 {0.00/29 3s} Rh2 {0.00/30 4s (Re2)} 40. Rd4
{0.00/30 3s (Rxc4)} Rf2 {0.00/32 2s (Rg2)} 41. Rxc4
{0.00/33 3s} Rf6 {0.00/36 4s} 42. Kd3 {0.00/36 3s (Kb4)}
Kf7 {0.00/34 2s} 43. Rc2 {0.00/38 3s (Kd4)} Ke7 {0.00/38
3s} 44. Ke4 {0.00/41 2s} Re6+ {0.00/41 3s} 45. Kd4 {0.00/44
4s} Kd6 {0.00/44 3s (Rd6+)} 46. b3 {0.00/43 3s (b4)} c5+
{0.00/42 3s} 47. Rxc5 {0.00/48 2s} Re4+ {0.00/48 2s}
48. Kxe4 {0.00/54 4s} Kxc5 {0.00/49 0s} 49. b4+ {0.00/90 2s
(Kd3)} Kxb4 {0.00/100 0s} 1/2-1/2

[Event "1 Minutes/Game + 3 Seconds/Move"]
[Site "Engine Match"]
[Date "2011.02.01"]
[Round "2"]
[White "Stockfish 2.0.1 PAG"]
[Black "Stockfish 2.0.1 JA 64bit"]
[Result "1-0"]

1. e4 {+0.32/18 3s} e5 {+0.24/19 5s (e6)} 2. Nf3 {+0.44/19
3s} Nf6 {+0.32/20 3s (Nc6)} 3. Nxe5 {+0.20/19 4s} d6
{+0.48/20 5s} 4. Nf3 {+0.56/19 3s} Nxe4 {+0.44/20 3s} 5. d4
{+0.48/19 4s} Be7 {+0.56/20 6s (Nc6)} 6. Bd3 {+0.52/20 8s}
Nf6 {+0.48/20 3s (d5)} 7. O-O {+0.52/20 3s} O-O {+0.44/19
3s} 8. c4 {+0.64/20 8s} Nc6 {+0.44/20 6s} 9. Nc3 {+0.52/20
5s (d5)} Bg4 {+0.40/20 4s (d5)} 10. h3 {+0.52/20 7s} Bxf3
{+0.24/20 7s} 11. Qxf3 {+0.52/20 5s} Nxd4 {+0.20/20 7s}
12. Qxb7 {+0.40/21 6s} Ne6 {+0.28/21 4s} 13. Qb3 {+0.32/20
10s (Bc2)} Nc5 {+0.32/19 5s} 14. Qc2 {+0.36/19 3s} Nxd3
{+0.20/18 2s} 15. Qxd3 {+0.36/19 0s} Re8 {+0.40/18 2s}
16. Be3 {+0.28/18 3s} Nd7 {+0.40/19 11s} 17. Rad1 {+0.44/19
4s} Ne5 {+0.36/18 6s} 18. Qe2 {+0.52/19 4s} c6 {+0.48/17
3s} 19. Ne4 {+0.40/18 5s} Qc7 {+0.56/19 3s} 20. Rfe1
{+0.24/18 4s (Bd4)} f5 {+0.24/18 2s} 21. Ng3 {+0.32/19 4s}
g6 {+0.24/19 3s} 22. Bd4 {+0.24/20 6s (b3)} Bf6 {+0.28/20
3s} 23. Qd2 {+0.28/20 2s} Re6 {+0.36/20 4s} 24. b3
{+0.28/21 2s} Rae8 {+0.20/22 4s} 25. Ne2 {+0.12/20 6s} a6
{+0.24/20 6s (Qb7)} 26. Nf4 {+0.60/19 4s (Bc3)} R6e7
{+0.64/18 3s} 27. Nd3 {+0.52/21 3s (Bc3)} Nxd3 {+0.64/17 2s
(Nxc4)} 28. Rxe7 {+0.60/15 0s} Bxe7 {+0.60/20 3s (Qxe7)}
29. Qxd3 {+0.64/16 0s} Bf8 {+0.60/20 3s} 30. Qd2 {+0.56/19
3s (Bc3)} Qe7 {+0.68/20 5s (Qb7)} 31. Be3 {+0.56/22 4s} Qb7
{+0.68/20 4s} 32. Bf4 {+0.56/22 11s} Re6 {+0.48/20 3s}
33. Qc3 {+0.72/22 3s} Be7 {+0.48/19 4s (Qe7)} 34. Qf3
{+0.68/19 3s} a5 {+0.56/20 4s (Qb6)} 35. Bd2 {+0.72/17 2s
(g3)} Qb6 {+0.84/20 4s (Bd8)} 36. Bc3 {+0.84/20 2s} Bh4
{+0.84/18 3s} 37. g3 {+0.84/20 3s (Qf4)} Bf6 {+1.01/20 3s}
38. Bxf6 {+1.01/20 3s} Rxf6 {+0.84/16 0s} 39. Re1 {+1.01/21
3s} Kf7 {+1.05/19 2s} 40. Qe2 {+1.09/20 2s} Qd8 {+1.01/20
2s} 41. Qe3 {+1.13/22 2s} c5 {+1.01/20 2s (Kg8)} 42. Kg2
{+1.05/18 2s (Qe2)} Kg7 {+1.01/20 2s} 43. Qf3 {+1.09/20 3s
(Re2)} Rf7 {+1.09/18 2s} 44. Rd1 {+1.05/20 2s} Qc7
{+1.05/20 3s (Rf6)} 45. Qc3+ {+1.05/17 3s} Rf6 {+1.01/21 3s
(Kg8)} 46. Re1 {+1.01/19 2s} Kf7 {+1.01/20 2s} 47. Qe3
{+0.96/20 2s} Qd8 {+0.88/20 2s} 48. Kh2 {+1.05/21 4s (Re2)}
Kg7 {+0.96/20 3s (Qf8)} 49. Qd2 {+1.09/21 3s} h6 {+1.09/20
2s (Rf7)} 50. Kg2 {+1.01/19 3s (f3)} f4 {+1.25/20 6s (g5)}
51. gxf4 {+1.17/18 2s} Kf8 {+1.25/19 1s (Kf7)} 52. Kg3
{+1.37/19 2s} Kf7 {+1.37/20 4s} 53. h4 {+1.41/22 3s (f3)}
Kg7 {+1.49/20 2s} 54. Qc3 {+1.49/23 3s (Qd3)} Kf8 {+1.41/20
2s} 55. Qf3 {+1.45/21 2s (Qd3)} Kg7 {+1.65/20 3s (Rf5)}
56. Qc6 {+1.69/21 2s} Kf8 {+1.69/22 2s (Rf7)} 57. Re2
{+1.73/21 2s (Re4)} h5 {+1.53/22 2s (Qb8)} 58. Re1
{+1.69/22 4s (Re4)} Qb8 {+1.57/22 3s} 59. Re4 {+1.69/23 3s
(Re5)} Qd8 {+1.53/22 4s} 60. Re2 {+1.57/24 3s (Re3)} Rxf4
{+1.89/21 3s (Qb8)} 61. Re8+ {+3.27/20 2s} Qxe8 {+1.73/15
0s} 62. Qxe8+ {+3.63/23 3s} Kxe8 {+2.86/15 0s} 63. Kxf4
{+3.79/23 1s} Ke7 {+9.69/23 5s (Kf7)} 64. Kg5 {+6.22/22 2s}
Kf7 {+11.07/26 3s} 65. f4 {+6.14/22 0s} a4 {+12.32/27 4s}
66. bxa4 {+7.03/21 1s (f5)} d5 {+6.94/20 2s} 67. cxd5
{+7.71/21 1s} c4 {+10.34/21 2s} 68. a5 {+11.51/22 3s} c3
{+15.19/22 5s} 69. a6 {+15.23/22 5s} c2 {+17.17/21 3s}
70. a7 {+17.81/22 7s} c1=Q {+17.65/20 1s} 71. a8=Q
{+6.54/11 0s} Qc7 {+18.38/22 2s (Qg1+)} 72. Qh8 {+77.07/22
3s} Qe7+ {+19.39/20 2s} 73. Kh6 {+77.08/23 0s} Qxh4
{+21.29/20 5s (Qb4)} 74. Qg7+ {+89.14/22 2s} Ke8 {+3.87/6
0s} 75. Qxg6+ {+89.14/22 4s} Kd7 {+28.84/21 4s} 76. Qc6+
{+89.14/21 4s} Kd8 {+28.40/20 2s} 77. Qd6+ {+20.32/18 3s}
Kc8 {+17.69/18 3s} 78. f5 {+89.24/18 2s} Qf2 {+77.08/16 2s}
79. f6 {+89.44/21 3s (Qe6+)} Qd2+ {+89.04/18 2s (Qe3+)}
80. Kh7 {+65.93/18 3s (Kxh5)} Qd3+ {+90.24/16 2s (Qc2+)}
81. Kh8 {+92.00/18 3s} Qd4 {+101.72/19 2s (Kb7)} 82. Qf8+
{+107.91/19 3s} Kc7 {+129.57/19 6s} 83. Qg7+ {+M16/14 2s}
Kd6 {+M15/17 2s} 84. f7 {+M15/6 0s} Qf4 {+M15/17 3s}
85. f8=Q+ {+M14/6 0s} Qxf8+ {+M12/17 0s} 86. Qxf8+ {+M13/12
0s} Kxd5 {+M10/15 0s} 87. Kg7 {+M12/6 0s (a4)} h4 {+M11/15
0s (Kc4)} 88. Qd8+ {+M11/6 0s} Kc4 {+M9/14 0s (Kc5)}
89. Qxh4+ {+M10/11 0s} Kd3 {+M8/11 0s (Kb5)} 90. a4 {+M8/6
0s} Kd2 {+M7/10 0s (Kc2)} 91. a5 {+M7/7 0s} Kd1 {+M6/8 0s
(Kc2)} 92. a6 {+M6/6 0s} Kd2 {+M5/7 0s (Kc2)} 93. a7 {+M5/6
0s} Ke2 {+M4/6 0s (Ke3)} 94. a8=Q {+M4/6 0s} Kd3 {+M3/6 0s}
95. Qhe4+ {+M3/6 0s (Qb4)} Kc3 {+M2/6 0s (Kd2)} 96. Qa1+
{+M2/6 0s} Kd2 {+M1/6 0s (Kb3)} 97. Qae1# {+M1/6 0s} 1-0

[Event "1 Minutes/Game + 3 Seconds/Move"]
[Site "Engine Match"]
[Date "2011.02.01"]
[Round "3"]
[White "Stockfish 2.0.1 JA 64bit"]
[Black "Stockfish 2.0.1 PAG"]
[Result "1/2-1/2"]

1. e4 e5 {+0.28/19 4s} 2. Nf3 {+0.48/19 3s} Nf6 {+0.52/20
8s} 3. d4 {+0.36/19 4s (Nxe5)} exd4 {+0.36/19 4s} 4. e5
{+0.48/20 5s} Ne4 {+0.52/21 10s} 5. Qxd4 {+0.56/20 3s} d5
{+0.60/20 3s (f5)} 6. exd6 {+0.68/20 4s} Nxd6 {+0.40/21 2s}
7. Bd3 {+0.56/21 4s} Nc6 {+0.60/21 4s} 8. Qf4 {+0.68/20 5s}
Qf6 {+0.44/20 4s (Qe7+)} 9. Nc3 {+0.60/19 5s (Qxf6)} Bf5
{+0.40/20 13s} 10. O-O {+0.36/18 3s (Bxf5)} O-O-O {+0.16/19
3s (Bxd3)} 11. Qa4 {+0.48/19 5s (Nh4)} Bxd3 {+0.28/18 3s}
12. cxd3 {+0.28/16 0s} h6 {+0.12/20 4s (Qf5)} 13. Bf4
{+0.16/17 3s (Re1)} g5 {+0.28/19 3s} 14. Be3 {+0.16/18 5s}
a6 {+0.12/18 4s} 15. d4 {0.00/19 6s} Bg7 {-0.12/18 5s}
16. Rac1 {0.00/18 3s (d5)} Qg6 {0.00/20 4s} 17. Qb3
{0.00/19 3s} Na5 {-0.16/20 7s} 18. Qb4 {0.00/22 3s (Qa4)}
Nc6 {0.00/23 2s} 19. Qb3 {0.00/25 3s} Na5 {0.00/22 3s}
20. Qb4 {0.00/26 4s (Qa4)} Nc6 {0.00/26 11s} 21. Qb3
{0.00/27 6s (Qa4)} 1/2-1/2

[Event "1 Minutes/Game + 3 Seconds/Move"]
[Site "Engine Match"]
[Date "2011.02.01"]
[Round "4"]
[White "Stockfish 2.0.1 PAG"]
[Black "Stockfish 2.0.1 JA 64bit"]
[Result "1/2-1/2"]

1. e4 e5 {+0.24/18 4s} 2. Nf3 {+0.52/19 4s} Nc6 {+0.36/20
7s (Nf6)} 3. Bb5 {+0.44/20 4s} a6 {+0.48/20 3s} 4. Bxc6
{+0.52/21 4s} dxc6 {+0.44/21 3s} 5. O-O {+0.52/21 3s} Bg4
{+0.52/22 3s} 6. h3 {+0.48/21 5s} Bxf3 {+0.52/22 3s}
7. Qxf3 {+0.40/22 6s} Bd6 {+0.52/21 7s (Qf6)} 8. Qb3
{+0.44/20 4s} b6 {+0.36/20 3s} 9. d3 {+0.36/21 7s} Ne7
{+0.36/22 4s} 10. Bg5 {+0.36/21 6s} Qd7 {+0.28/22 4s (O-O)}
11. Bxe7 {+0.32/22 4s (Nd2)} Bxe7 {+0.28/23 3s} 12. Nd2
{+0.32/23 4s} O-O {+0.24/23 3s} 13. Nf3 {+0.24/22 7s} Bf6
{+0.24/24 4s} 14. Rfe1 {+0.32/23 4s (Qc4)} a5 {+0.28/21 3s
(Rad8)} 15. Rad1 {+0.24/21 3s} c5 {+0.32/22 3s (Rfd8)}
16. Qd5 {+0.28/22 4s} Qe7 {+0.32/23 13s (Qb5)} 17. Qc6
{+0.32/21 4s} Rfd8 {+0.24/22 2s (a4)} 18. g3 {+0.32/23 7s}
Rab8 {+0.32/24 4s (Ra7)} 19. Kg2 {+0.32/22 4s (Qa4)} Rd6
{+0.40/21 3s} 20. Qa4 {+0.36/23 4s} Rbd8 {+0.32/19 3s
(Ra8)} 21. Rh1 {+0.44/20 3s} Bg5 {+0.36/20 3s} 22. Qc4
{+0.40/19 3s} Re8 {+0.36/20 4s (Re6)} 23. Qc3 {+0.36/20 2s
(Qb3)} f6 {+0.32/20 4s (Re6)} 24. b3 {+0.32/18 5s (a3)} Qe6
{+0.28/19 12s (Rdd8)} 25. Rhf1 {+0.32/19 5s (h4)} Rdd8
{+0.20/19 3s (Qf7)} 26. a3 {+0.36/20 5s (Ra1)} Bh6
{+0.24/18 3s (Ra8)} 27. Nh2 {+0.36/18 4s} Bg5 {+0.28/19 2s}
28. Rde1 {+0.36/19 4s} h5 {+0.28/20 4s} 29. Nf3 {+0.32/21
4s} Bh6 {+0.12/21 11s (Rf8)} 30. Nh4 {+0.24/21 2s (Qc4)}
Bg5 {+0.36/22 2s} 31. Nf5 {+0.40/22 3s} g6 {+0.20/21 2s}
32. f4 {+0.36/22 3s} Bxf4 {0.00/21 3s} 33. gxf4 {+0.04/22
9s} gxf5 {+0.04/22 5s} 34. fxe5 {0.00/22 3s} Qxe5 {0.00/22
2s} 35. Qxe5 {0.00/24 3s} Rxe5 {+0.24/24 4s} 36. Rxf5
{+0.08/25 3s} Rxf5 {0.00/23 2s} 37. exf5 {+0.28/20 0s} a4
{+0.20/25 2s} 38. bxa4 {+0.12/26 3s} c4 {+0.16/25 4s}
39. dxc4 {+0.12/27 3s} Rd2+ {+0.16/25 2s} 40. Kg3 {+0.28/28
3s} Rxc2 {0.00/27 3s} 41. Kh4 {+0.28/26 2s} Kf7 {0.00/28
2s} 42. Rd1 {+0.20/26 2s (Kxh5)} Ke7 {0.00/28 3s} 43. Kxh5
{+0.16/28 4s} Rc3 {0.00/28 2s} 44. c5 {+0.16/28 3s (Re1+)}
Rxh3+ {+0.20/26 2s} 45. Kg4 {+0.20/31 2s} Rxa3 {+0.20/28
2s} 46. c6 {+0.20/28 2s} Rxa4+ {+0.20/29 2s (Ke8)} 47. Kh5
{0.00/29 2s} Rc4 {+0.20/29 2s} 48. Rd7+ {0.00/31 2s} Ke8
{0.00/31 3s} 49. Rxc7 {0.00/35 3s} Kd8 {0.00/36 2s} 50. Rf7
{0.00/36 3s} Rxc6 {0.00/40 2s} 51. Kg6 {0.00/43 2s} Ke8
{0.00/46 2s} 52. Rxf6 {0.00/49 3s} Rxf6+ {0.00/49 2s}
53. Kxf6 {0.00/49 0s} Kf8 {0.00/53 2s} 54. Ke5 {0.00/51 2s
(Ke6)} Kf7 {0.00/57 2s (Ke7)} 55. Kd5 {0.00/56 3s (Ke4)}
Kf6 {0.00/60 2s} 56. Kd4 {0.00/59 2s} Kxf5 {0.00/64 2s}
57. Kc3 {0.00/87 2s (Kd5)} b5 {0.00/100 0s} 58. Kb2
{0.00/100 1s (Kd4)} b4 {0.00/100 0s (Ke5)} 59. Ka1
{0.00/100 0s (Kc2)} b3 {0.00/100 0s} 60. Kb1 {0.00/100 0s}
b2 {0.00/100 0s} 61. Kxb2 {0.00/100 0s} 1/2-1/2

gaard
Posts: 127
Joined: Thu Jun 10, 2010 1:39 am
Real Name: Martin Wyngaarden
Location: Holland, Michigan

Re: Designing an analysis friendly Stockfish?

Post by gaard » Tue Feb 01, 2011 8:13 pm

mcostalba wrote:
gaard wrote:
mcostalba wrote:It would look like this:

Code: Select all

if (tte && (PvNode ? ok_to_use_TT_PV(tte, depth, alpha, beta, ply) : ok_to_use_TT(tte, depth, beta, ply))
 {
    TT.refresh(tte);
    ss->bestMove = ttMove; // Can be MOVE_NONE
    return value_from_tt(tte->value(), ply);
}
I made the changes both in the normal and qsearch parts of search.cpp. I am seeing a slow down of ~15%. Is this to be expected?
The above code should have zero speed impact.

Code: Select all

Stockfish 2.01 JA :600 (+188,=277,-135), 54,4%

Naum 4.2 : 100 (+ 36,= 52,- 12), 62.0 %
Deep Rybka 4 : 100 (+ 19,= 55,- 26), 46.5 %
Deep Shredder 12 : 100 (+ 44,= 41,- 15), 64.5 %
Critter 0.90 SSE42 : 100 (+ 31,= 47,- 22), 54.5 %
Houdini 1.5a : 100 (+ 20,= 39,- 41), 39.5 %
Komodo64 1.3 JA : 100 (+ 38,= 43,- 19), 59.5 %

Stockfish 2.0.1 PA :600 (+184,=286,-130), 54.5 %

Naum 4.2 : 100 (+ 42,= 38,- 20), 61.0 %
Deep Rybka 4 : 100 (+ 12,= 59,- 29), 41.5 %
Deep Shredder 12 : 100 (+ 41,= 52,- 7), 67.0 %
Critter 0.90 SSE42 : 100 (+ 24,= 52,- 24), 50.0 %
Houdini 1.5a : 100 (+ 12,= 47,- 41), 35.5 %
Komodo64 1.3 JA : 100 (+ 53,= 38,- 9), 72.0 % 
Ingo was kind enough to run some tests for me. The two scored almost identically against the same 6 opponents and this is from a compile that is ~7% slower than JA's.

User avatar
Uly
Posts: 838
Joined: Thu Jun 10, 2010 5:33 am

Re: Designing an analysis friendly Stockfish?

Post by Uly » Tue Feb 01, 2011 8:34 pm

Thanks gaard and Ingo, that looks very promising.

Post Reply