I have to make a few changes to Sting to get it to compile, link and run on my system.
And I also change the EPD format so that it is closer to the standard.
In the archive you will find at the root level vhard.epd which is a very hard to solve file of EPD problems.
To score 30/69 at three minutes per problem with 16 cores at 3.8GHz is an excellent score for a tactical engine.
sting-sf-bh-11x scores 40/69 at the stated conditions with UCI setting oldsting set to checked (scale your system's time and threads to mine for similar results).
But when I checked the blackhole checkbox (I left the oldsting setting checked also - not sure if you are supposed to do that) I got an astonishing 45/69 at three minutes with 16 cores at 3.8GHz.
Notes:
Sting does not scale well beyond 16 cores. 32 cores is right out.
Examine not only the solution count, but also how fast the problems were solved.
I recommend trying your own favorite tactical engine to see how well it performs.
Suppose you have an 8 core machine at 3.5GHz to get appropriate match on your system, multiply 3 minutes by (3.8/3.5) * (16/8)
so 2.1714285714285714285714285714286 * 180 seconds = 391 seconds per problem.
This buzzsaw of an engine is the neatest thing since sliced bread for an interesting category of hard problems.
Code: Select all
Analysis of G:\vhard.epd
Analyzing engine: Sting
1/5/2026 6:21:13 PM Level: 180 Seconds
Source : List of EPD/PGN files
G:\vhard.epd
Colours : White moves=True, Black moves=True
Direction : forward
Games (PGN) : From 1 to 999999
Moves : All moves
Positions (EPD) : From 1 to 999999
Use Engine(s) : List
Sting
Sting-bh
Use seconds per move : 180 Seconds per move
Analysis Lines : Minimum search depth=2
Activate abort analysis : False
1) Kc8-c7 g6-g7
2) Kc8-d7, Kc8-d8 Kc8-b7
3) Nc8-e7 Nc8-e7 * 122 Seconds
4) Qa7xc7 Qa7xc7 * 0 Seconds
5) Kd5-e6 Kd5-e6 * 11 Seconds
6) Qh5xg6 Bh4-f6
7) Bb7-c6 Nd1-b2
8) Nh4xg6 Nh4xg6 * 0 Seconds
9) Rg6-g4 Rg6-g4 * 5 Seconds
10) Bb7-d5 Na7-b5
11) Nh4-g6 Nh4-g6 * 119 Seconds
12) Ne3-f1 d4xe5
13) Be3-c1 Be3-c1 * 8 Seconds
14) Re3-c3 Nh4-f5
15) Bc8xa6 Bc8xa6 * 0 Seconds
16) Bc8xa6 Bc8xa6 * 0 Seconds
17) Kc8-d7, Kc8-d8 Kc8-b7
18) Nc8-e7 Nc8-e7 * 0 Seconds
19) Qa7xc7 Qa7xc7 * 0 Seconds
20) Bb7-c6 Nd1-b2
21) Nh4xg6 Nh4xg6 * 0 Seconds
22) h6-h7 Qh3-c3
23) Rg6-g4 Rg6-g4 * 0 Seconds
24) Nh4-g6 Nh4-g6 * 104 Seconds
25) e5-e6 e5xf6
26) Ba7-b8 g4-g5
27) Re3xd3 Re3xd3 * 93 Seconds
28) Be3-c1 Be3-c1 * 17 Seconds
29) Kc8-c7 g6-g7
30) Kc8-d7, Kc8-d8 Kc8-b8
31) Nc8-e7 Nc8-e7 * 104 Seconds
32) Qa7xc7 Qa7xc7 * 0 Seconds
33) Kd5-e6 Kd5-e6 * 0 Seconds
34) Qh5xg6 Bh4-e1
35) Bb7-c6 Nd1-b2
36) Nh4xg6 Nh4xg6 * 0 Seconds
37) Rg6-g4 Rg6-g4 * 0 Seconds
38) Bb7-d5 Na7-b5
39) Nh4-g6 Nh4-g6 * 97 Seconds
40) Ne3-f1 d4xe5
41) Be3-c1 Be3-c1 * 0 Seconds
42) Qa3-f3 Qa3-f3 * 9 Seconds
43) Kc8-c7 g6-g7
44) Kc8-d7, Kc8-d8 Kc8-b8
45) Qa7xc7 Qa7xc7 * 0 Seconds
46) Kd5-e6 Kd5-e6 * 0 Seconds
47) Qh5xg6 Bh4-e1
48) Bb7-c6 Nd1-b2
49) Nh4xg6 Nh4xg6 * 0 Seconds
50) Rg6-g4 Rg6-g4 * 0 Seconds
51) Bb7-d5 Na7-b5
52) Nh4-g6 Nh4-g6 * 98 Seconds
53) Ba7-b8 g4-g5
54) Be2-c4 Be2-c4 * 104 Seconds
55) Be3-c1 Be3-c1 * 0 Seconds
56) Re3-c3 Nh4-f5
57) Kc8-c7 g6-g7
58) Nc8-e7 Nc8-e7 * 0 Seconds
59) Qa7xc7 Qa7xc7 * 9 Seconds
60) Kd5-e6 Kd5-e6 * 0 Seconds
61) Bb7-c6 Nd1-b2
62) Nh4xg6 Nh4xg6 * 0 Seconds
63) h6-h7 Qh3-c3
64) Rf6-h6 Rf6-h6 * 17 Seconds
65) Rg6-g4 Rg6-g4 * 0 Seconds
66) Rb3-c3 Rb3-c3 * 2 Seconds
67) Nh4-g6 Nh4-g6 * 113 Seconds
68) Be2-c4 Rc5xe5
69) Be3-c1 Be3-c1 * 0 Seconds
40 of 69 matching moves
1/5/2026 9:49:21 PM, Total time: 3:28:08 AM Rated time: 1:44:12 = 6252 Seconds
--------------------------------------------------------------------------------
Analysis of G:\vhard.epd
Analyzing engine: Sting-bh
1/5/2026 6:21:13 PM Level: 1800 Seconds
Source : List of EPD/PGN files
G:\vhard.epd
Colours : White moves=True, Black moves=True
Direction : forward
Games (PGN) : From 1 to 999999
Moves : All moves
Positions (EPD) : From 1 to 999999
Use Engine(s) : List
Sting
Sting-bh
Use seconds per move : 180 Seconds per move
Analysis Lines : Minimum search depth=2
Activate abort analysis : False
1) Kc8-c7 g6-g7
2) Kc8-d7, Kc8-d8 Kc8-d8 * 9 Seconds
3) Nc8-e7 Nc8-e7 * 0 Seconds
4) Qa7xc7 Qa7xc7 * 0 Seconds
5) Kd5-e6 Kd5-e6 * 4 Seconds
6) Qh5xg6 Qh5xg6 * 22 Seconds
7) Bb7-c6 Nd1-b2
8) Nh4xg6 Nh4xg6 * 0 Seconds
9) Rg6-g4 Rg6-g4 * 4 Seconds
10) Bb7-d5 Na7-b5
11) Nh4-g6 Nh4-f5
12) Ne3-f1 d4xe5
13) Be3-c1 Be3-c1 * 3 Seconds
14) Re3-c3 Re3-c3 * 36 Seconds
15) Bc8xa6 Bc8xa6 * 0 Seconds
16) Bc8xa6 Bc8xa6 * 24 Seconds
17) Kc8-d7, Kc8-d8 Kc8-d7 * 141 Seconds
18) Nc8-e7 Nc8-e7 * 25 Seconds
19) Qa7xc7 Qa7xc7 * 0 Seconds
20) Bb7-c6 Nd1-b2
21) Nh4xg6 Nh4xg6 * 0 Seconds
22) h6-h7 h6-h7 * 145 Seconds
23) Rg6-g4 Rg6-g4 * 0 Seconds
24) Nh4-g6 Nh4-f5
25) e5-e6 e5xf6
26) Ba7-b8 Ba7-b8 * 39 Seconds
27) Re3xd3 Re3xd3 * 134 Seconds
28) Be3-c1 Be3-c1 * 2 Seconds
29) Kc8-c7 Qd2-d8
30) Kc8-d7, Kc8-d8 Kc8-d7 * 74 Seconds
31) Nc8-e7 Nc8-e7 * 0 Seconds
32) Qa7xc7 Qa7xc7 * 0 Seconds
33) Kd5-e6 Kd5-e6 * 0 Seconds
34) Qh5xg6 Bh4-f6
35) Bb7-c6 Nd1-b2
36) Nh4xg6 Nh4xg6 * 0 Seconds
37) Rg6-g4 Rg6-g4 * 0 Seconds
38) Bb7-d5 Na7-b5
39) Nh4-g6 Nh4-f5
40) Ne3-f1 d4xe5
41) Be3-c1 Be3-c1 * 0 Seconds
42) Qa3-f3 Qa3-f3 * 40 Seconds
43) Kc8-c7 g6-g7
44) Kc8-d7, Kc8-d8 Kc8-d7 * 52 Seconds
45) Qa7xc7 Qa7xc7 * 0 Seconds
46) Kd5-e6 Kd5-e6 * 0 Seconds
47) Qh5xg6 Qh5xg6 * 11 Seconds
48) Bb7-c6 Nd1-b2
49) Nh4xg6 Nh4xg6 * 0 Seconds
50) Rg6-g4 Rg6-g4 * 0 Seconds
51) Bb7-d5 Na7-b5
52) Nh4-g6 Nh4-f5
53) Ba7-b8 Ba7-b8 * 0 Seconds
54) Be2-c4 Kf2-e3
55) Be3-c1 Be3-c1 * 0 Seconds
56) Re3-c3 Re3-c3 * 0 Seconds
57) Kc8-c7 g6-g7
58) Nc8-e7 Nc8-e7 * 61 Seconds
59) Qa7xc7 Qa7xc7 * 0 Seconds
60) Kd5-e6 Kd5-e6 * 0 Seconds
61) Bb7-c6 Nd1-b2
62) Nh4xg6 Nh4xg6 * 0 Seconds
63) h6-h7 Qh3-c3
64) Rf6-h6 Rf6-f7
65) Rg6-g4 Rg6-g4 * 0 Seconds
66) Rb3-c3 Rb3-c3 * 44 Seconds
67) Nh4-g6 Nh4-f5
68) Be2-c4 Be2-c4 * 148 Seconds
69) Be3-c1 Be3-c1 * 0 Seconds
45 of 69 matching moves
1/6/2026 1:17:31 AM, Total time: 6:56:18 AM Rated time: 1:28:58 = 5338 Seconds
The src folder has the modified code and makefile along with the binary.
It may be interesting to see how it compares with just the BlackHole box checked and the OldSting box not checked.
