Stockfish: MultiPV outputs sometimes include upperbound info

Created on 22 Jan 2017  路  24Comments  路  Source: ddugovic/Stockfish

When stockfish is configured to print multiple PVs, it sometimes uses upperbound lines for non-primary PVs. Is this expected behavior?

For example, with FEN r1bq1b1r/pppp1kpp/2n2n2/8/3pP3/5N2/PPP2PPP/RNBQK2R/Pbp w KQ - 1 and go depth 26 I saw:

info depth 20 seldepth 32 multipv 1 score cp -138 nodes 203524778 nps 802308 hashfull 999 tbhits 0 time 253674 pv P@d5 f7g8 e1g1 f6e4 d5c6 d7c6 d1d4 d8d4 f3d4 Q@f6 Q@f4 B@d5 f4f6 e4f6 b1c3 Q@c4 c3d5 c4d5 Q@f3 N@e4 P@h6 g7h6 c1h6 P@g7
info depth 20 seldepth 32 multipv 2 score cp -190 upperbound nodes 203524778 nps 802308 hashfull 999 tbhits 0 time 253674 pv e4e5 d8e7 e1g1 c6e5 f3e5 e7e5 N@f3 e5c5 P@e5 f6e4 d1d3 P@f5 b1d2 f7g8 d2e4 f5e4 d3e4 B@d5 P@f7 d5f7 f3d4 P@d6 P@f4

Most helpful comment

Unless I am missing something fundamental, this can not possibly be related. To be sure I just confirmed that also official Stockfish has the same behavior (with the starting position of standard chess & multipv 4, for example).

All 24 comments

I can't imagine this fork having changed what upstream (official-stockfish) Stockfish does in this regard.

Could it be a side effect of longestPv logic?

I don't know. How could we test that theory?

By testing without -DUSELONGESTPV. It looks like that flag is not to blame, I am still seeing occurnces of this without.

Thanks, that is useful to know. I am curious why this functionality is being construed as a negative thing: even human players think in this "fuzzy" manner (my best move gives me an advantage, and my second-best move does no better than draw and might lose).

even human players think in this "fuzzy" manner (my best move gives me an advantage, and my second-best move does no better than draw and might lose).

Yes, I agree. If this was all SF had for lower PVs, I wouldn't consider it a bug. But at some point stockfish calculated the real eval for pv e4e5 and didn't print it. It got printed when the main PV (P@d5) reached depth 21 a minute later:

info depth 21 ... nodes ... pv P@d5
info depth 20 ... nodes ... pv e4e5

i.e. the 'real' eval for depth 20 e4e5

So the bug isn't that we're getting mixed node/upperbound messages, but rather that we're _not_ getting a complete true eval printout.

EDIT: I meant -DPRINTCURRMOVE, not -DUSELONGESTPV.

That discovery sound eerily similar to the official-stockfish issue reported about a year ago, which corresponds to code disabled by the -DPRINTCURRMOVE change.

Again, I would not be opposed to changing -DPRINTCURRMOVE into either a UCI setting and/or into an integer (non-boolean) parameter for easier and/or more flexible configuration.

Unless I am missing something fundamental, this can not possibly be related. To be sure I just confirmed that also official Stockfish has the same behavior (with the starting position of standard chess & multipv 4, for example).

But at some point stockfish calculated the real eval for pv e4e5 and didn't print it.

I finally found time to test this using a MultiPV of 4 and -DPRINTCURRMOVE. Why should I believe the evaluation for pv e4e5 was calculated prior to the first depth 21 statement?

$ cat test.txt 
setoption name MultiPV value 4
position fen r1bq1b1r/pppp1kpp/2n2n2/8/3pP3/5N2/PPP2PPP/RNBQK2R/Pbp w KQ - 1
go depth 26

As I've been told, stockfish in multiPv evaluates each PV separately, and prints everything each time a PV increases depth. So we see the followed eval printouts:

Pv1 (depth 20), Pv2 (depth 20)
Pv1 (depth 21), Pv2 (depth 20)
Pv1 (depth 21), Pv2 (depth 21)

In the example above, the second printout, with Pv2 depth 20, shows the real eval of Pv2, while the first printout showed only an upperbound of Pv2.

There was a minute gap between the first and second printout, because the second printout was triggered by Pv1 reaching depth 21. The bug is that Pv2 getting a better depth 20 eval isn't triggering a printout, and is instead being printed as a side effect of Pv1 reaching higher depth.

Here is the multi-PV search loop. It seems to me only the main thread can/should print PVs.

Possibly mitigating/masking this issue is the printing of the best(?) PV after at a depth all PVs have been searched. In your MultiPV=2 example:

Pv1 (depth 20), Pv2 (depth 20) -- all PVs searched
Pv1 (depth 21), Pv2 (depth 20) -- how does this happen if MultiPV > 1?
Pv1 (depth 21), Pv2 (depth 21) -- all PVs searched

Re mixed depth print -- perhaps from the Time.elapsed() > 3000 condition?

Ah, of course... I read that line of code a dozen times and each time logically interpreted || as &&.

@isaacl This code is defying all my attempts to debug it, even with make build ARCH=x86-64-bmi2 debug=yes optimize=no:
https://github.com/ddugovic/Stockfish/commit/dc1e684fbec385e201fb7fcee6314213e13eb7f1

In summary:

  • I lack a SSCCE
  • Attempts to debug are not yielding information
  • Attempts to read the code are time-consuming and fruitless
  • I do not understand how to answer your inquiry

what do you need from me? are you unable to reproduce, or simply unable to debug? we've worked around the issue and I don't see it too frequently, yet it remains a stockfish bug

It is true that sometimes I see a bound instead of a score, yet I do not know whether that can be classified as expected behavior or whether that PV was evaluated and should be a score.

This issue is open and I neither know nor understand what I need in order to provide an answer.

Once upstream partial_insertion_sort improvement is merged, it may be interesting to retest this.

I retested my use case:

setoption name MultiPV value 4
position fen r1bq1b1r/pppp1kpp/2n2n2/8/3pP3/5N2/PPP2PPP/RNBQK2R/Pbp w KQ - 1
go depth 26

and observe:

info depth 20 seldepth 35 multipv 1 score cp -279 nodes 15390747 nps 1183448 hashfull 999 tbhits 0 time 13005 pv e4e5 f6e4 f3d4 c6d4 d1d4 d7d5 e5d6 e4f6 d4c4 c8e6 c4c7 d8c7 d6c7 f8d6 b1c3 d6c7 c1e3 h8d8 f2f3 e6f5 e1g1 d8e8 c3b5 c7h2 g1h2 e8e3 b5d6 f7g6 f1e1 e3e1 a1e1 f5c2 d6b7
info depth 20 seldepth 35 multipv 2 score cp -339 nodes 15390747 nps 1183448 hashfull 999 tbhits 0 time 13005 pv e1g1 f6e4 b1c3 d7d5 c3e4 d5e4 f3g5 f7g8 g5e4 c8e6 c1f4 d8d7 f1e1 f8e7 c2c3 a8f8 d1d2 h7h5 c3d4 h5h4 d4d5 d7d5 f4c7 h4h3 d2d5 e6d5
info depth 20 seldepth 35 multipv 3 score cp -348 nodes 15390747 nps 1183448 hashfull 999 tbhits 0 time 13005 pv f3d4 d7d5 e1g1 f6e4 c1e3 f8e7 d4c6 b7c6 b1d2 e4d2 d1d2 h8e8 f1e1 c8e6 d2c3 e7f6 c3c6 d8d6 c6d6 c7d6 a1b1 e6f5
info depth 19 seldepth 35 multipv 4 score cp -343 nodes 15390747 nps 1183448 hashfull 999 tbhits 0 time 13005 pv d1e2 d7d5 e4e5 f6e4 b1d2 e4d2 c1d2 f8e7 h2h3 h8f8 e1c1 f7g8 f3e1 c8f5 c1b1 a7a6 e1d3 d8d7 f2f4 a8e8 h1e1 f5e4 e2f2 d7e6
info depth 20 seldepth 35 multipv 1 score cp -279 nodes 16656752 nps 1181078 hashfull 999 tbhits 0 time 14103 pv e4e5 f6e4 f3d4 c6d4 d1d4 d7d5 e5d6 e4f6 d4c4 c8e6 c4c7 d8c7 d6c7 f8d6 b1c3 d6c7 c1e3 h8d8 f2f3 e6f5 e1g1 d8e8 c3b5 c7h2 g1h2 e8e3 b5d6 f7g6 f1e1 e3e1 a1e1 f5c2 d6b7
info depth 20 seldepth 35 multipv 2 score cp -339 nodes 16656752 nps 1181078 hashfull 999 tbhits 0 time 14103 pv e1g1 f6e4 b1c3 d7d5 c3e4 d5e4 f3g5 f7g8 g5e4 c8e6 c1f4 d8d7 f1e1 f8e7 c2c3 a8f8 d1d2 h7h5 c3d4 h5h4 d4d5 d7d5 f4c7 h4h3 d2d5 e6d5
info depth 20 seldepth 35 multipv 3 score cp -348 nodes 16656752 nps 1181078 hashfull 999 tbhits 0 time 14103 pv f3d4 d7d5 e1g1 f6e4 c1e3 f8e7 d4c6 b7c6 b1d2 e4d2 d1d2 h8e8 f1e1 c8e6 d2c3 e7f6 c3c6 d8d6 c6d6 c7d6 a1b1 e6f5
info depth 20 seldepth 35 multipv 4 score cp -357 nodes 16656752 nps 1181078 hashfull 999 tbhits 0 time 14103 pv d1e2 d7d5 e4e5 f6e4 b1d2 e4d2 c1d2 f8e7 e1c1 h8f8 f3e1 f7g8 f2f4 c8f5 g2g4 f5e4 h1f1 g7g5 c1b1 g5f4 d2f4 d8e8 f4g3 f8f1
info depth 21 seldepth 36 multipv 1 score cp -289 nodes 17910527 nps 1182993 hashfull 999 tbhits 0 time 15140 pv e4e5 f6e4 f3d4 c6d4 d1d4 d7d5 e5d6 e4f6 d4c4 c8e6 c4c7 d8c7 d6c7 f8d6 b1c3 d6c7 c1e3 a8d8 e1g1 a7a6 h2h3 h8e8 f1e1 h7h6 a1c1 f7g8 a2a4 e6f5 g2g4 f5g6 f2f4 f6d5 c3d5
info depth 20 seldepth 36 multipv 2 score cp -339 nodes 17910527 nps 1182993 hashfull 999 tbhits 0 time 15140 pv e1g1 f6e4 b1c3 d7d5 c3e4 d5e4 f3g5 f7g8 g5e4 c8e6 c1f4 d8d7 f1e1 f8e7 c2c3 a8f8 d1d2 h7h5 c3d4 h5h4 d4d5 d7d5 f4c7 h4h3 d2d5 e6d5
info depth 20 seldepth 36 multipv 3 score cp -348 nodes 17910527 nps 1182993 hashfull 999 tbhits 0 time 15140 pv f3d4 d7d5 e1g1 f6e4 c1e3 f8e7 d4c6 b7c6 b1d2 e4d2 d1d2 h8e8 f1e1 c8e6 d2c3 e7f6 c3c6 d8d6 c6d6 c7d6 a1b1 e6f5
info depth 20 seldepth 36 multipv 4 score cp -357 nodes 17910527 nps 1182993 hashfull 999 tbhits 0 time 15140 pv d1e2 d7d5 e4e5 f6e4 b1d2 e4d2 c1d2 f8e7 e1c1 h8f8 f3e1 f7g8 f2f4 c8f5 g2g4 f5e4 h1f1 g7g5 c1b1 g5f4 d2f4 d8e8 f4g3 f8f1
info depth 21 seldepth 36 multipv 1 score cp -289 nodes 19766075 nps 1183455 hashfull 999 tbhits 0 time 16702 pv e4e5 f6e4 f3d4 c6d4 d1d4 d7d5 e5d6 e4f6 d4c4 c8e6 c4c7 d8c7 d6c7 f8d6 b1c3 d6c7 c1e3 a8d8 e1g1 a7a6 h2h3 h8e8 f1e1 h7h6 a1c1 f7g8 a2a4 e6f5 g2g4 f5g6 f2f4 f6d5 c3d5
info depth 21 seldepth 36 multipv 2 score cp -336 nodes 19766075 nps 1183455 hashfull 999 tbhits 0 time 16702 pv e1g1 f6e4 b1c3 d7d5 c3e4 d5e4 f3g5 f7g8 g5e4 c8e6 c1f4 f8e7 f1e1 h7h5 e4f6 g7f6 e1e6 d8d7 e6e1 g8g7 c2c3 d4d3
info depth 20 seldepth 36 multipv 3 score cp -348 nodes 19766075 nps 1183455 hashfull 999 tbhits 0 time 16702 pv f3d4 d7d5 e1g1 f6e4 c1e3 f8e7 d4c6 b7c6 b1d2 e4d2 d1d2 h8e8 f1e1 c8e6 d2c3 e7f6 c3c6 d8d6 c6d6 c7d6 a1b1 e6f5
info depth 20 seldepth 36 multipv 4 score cp -357 nodes 19766075 nps 1183455 hashfull 999 tbhits 0 time 16702 pv d1e2 d7d5 e4e5 f6e4 b1d2 e4d2 c1d2 f8e7 e1c1 h8f8 f3e1 f7g8 f2f4 c8f5 g2g4 f5e4 h1f1 g7g5 c1b1 g5f4 d2f4 d8e8 f4g3 f8f1
info depth 21 seldepth 36 multipv 1 score cp -289 nodes 22039438 nps 1183897 hashfull 999 tbhits 0 time 18616 pv e4e5 f6e4 f3d4 c6d4 d1d4 d7d5 e5d6 e4f6 d4c4 c8e6 c4c7 d8c7 d6c7 f8d6 b1c3 d6c7 c1e3 a8d8 e1g1 a7a6 h2h3 h8e8 f1e1 h7h6 a1c1 f7g8 a2a4 e6f5 g2g4 f5g6 f2f4 f6d5 c3d5
info depth 21 seldepth 36 multipv 2 score cp -336 nodes 22039438 nps 1183897 hashfull 999 tbhits 0 time 18616 pv e1g1 f6e4 b1c3 d7d5 c3e4 d5e4 f3g5 f7g8 g5e4 c8e6 c1f4 f8e7 f1e1 h7h5 e4f6 g7f6 e1e6 d8d7 e6e1 g8g7 c2c3 d4d3
info depth 21 seldepth 36 multipv 3 score cp -345 nodes 22039438 nps 1183897 hashfull 999 tbhits 0 time 18616 pv d1e2 d7d5 e4e5 f6e4 b1d2 e4d2 c1d2 f8e7 e1c1 h8f8 f3e1 f7g8 f2f4 c8f5 c1b1 d4d3 e1d3 c6d4 e2e3 c7c5 h1e1 d4e6 d3f2 e6d4
info depth 20 seldepth 36 multipv 4 score cp -348 nodes 22039438 nps 1183897 hashfull 999 tbhits 0 time 18616 pv f3d4 d7d5
info depth 21 seldepth 36 multipv 1 score cp -289 nodes 23790351 nps 1186137 hashfull 999 tbhits 0 time 20057 pv e4e5 f6e4 f3d4 c6d4 d1d4 d7d5 e5d6 e4f6 d4c4 c8e6 c4c7 d8c7 d6c7 f8d6 b1c3 d6c7 c1e3 a8d8 e1g1 a7a6 h2h3 h8e8 f1e1 h7h6 a1c1 f7g8 a2a4 e6f5 g2g4 f5g6 f2f4 f6d5 c3d5
info depth 21 seldepth 36 multipv 2 score cp -336 nodes 23790351 nps 1186137 hashfull 999 tbhits 0 time 20057 pv e1g1 f6e4 b1c3 d7d5 c3e4 d5e4 f3g5 f7g8 g5e4 c8e6 c1f4 f8e7 f1e1 h7h5 e4f6 g7f6 e1e6 d8d7 e6e1 g8g7 c2c3 d4d3
info depth 21 seldepth 36 multipv 3 score cp -345 nodes 23790351 nps 1186137 hashfull 999 tbhits 0 time 20057 pv d1e2 d7d5 e4e5 f6e4 b1d2 e4d2 c1d2 f8e7 e1c1 h8f8 f3e1 f7g8 f2f4 c8f5 c1b1 d4d3 e1d3 c6d4 e2e3 c7c5 h1e1 d4e6 d3f2 e6d4
info depth 21 seldepth 36 multipv 4 score cp -365 nodes 23790351 nps 1186137 hashfull 999 tbhits 0 time 20057 pv f3d4 d7d5 e1g1 f6e4 b1c3 c6d4 d1d4 e4c3 b2c3 f8e7 c1f4 e7f6 d4d3 g7g6 d3g3 h8e8 f4c7 d8e7 c7d6 e7e4 d6c5 f7g8 c5d4 f6d4 c3d4 e4d4
info depth 22 seldepth 38 multipv 1 score cp -289 nodes 25308888 nps 1187318 hashfull 999 tbhits 0 time 21316 pv e4e5 f6e4 f3d4 c6d4 d1d4 d7d5 e5d6 e4f6 d4c4 c8e6 c4c7 d8c7 d6c7 f8d6 b1c3 d6c7 c1e3 a8d8 e1g1 a7a6 h2h3 h8e8 a1c1 f6d5 c3d5 e6d5 b2b3
info depth 21 seldepth 38 multipv 2 score cp -336 nodes 25308888 nps 1187318 hashfull 999 tbhits 0 time 21316 pv e1g1 f6e4 b1c3 d7d5 c3e4 d5e4 f3g5 f7g8 g5e4 c8e6 c1f4 f8e7 f1e1 h7h5 e4f6 g7f6 e1e6 d8d7 e6e1 g8g7 c2c3 d4d3
info depth 21 seldepth 38 multipv 3 score cp -345 nodes 25308888 nps 1187318 hashfull 999 tbhits 0 time 21316 pv d1e2 d7d5 e4e5 f6e4 b1d2 e4d2 c1d2 f8e7 e1c1 h8f8 f3e1 f7g8 f2f4 c8f5 c1b1 d4d3 e1d3 c6d4 e2e3 c7c5 h1e1 d4e6 d3f2 e6d4
info depth 21 seldepth 38 multipv 4 score cp -365 nodes 25308888 nps 1187318 hashfull 999 tbhits 0 time 21316 pv f3d4 d7d5 e1g1 f6e4 b1c3 c6d4 d1d4 e4c3 b2c3 f8e7 c1f4 e7f6 d4d3 g7g6 d3g3 h8e8 f4c7 d8e7 c7d6 e7e4 d6c5 f7g8 c5d4 f6d4 c3d4 e4d4

@ddugovic Sounds intresting. I couldn't find the branch. Do you have a link?

@niklasf Earlier I was referring to 2d96e8fbe9b683ff320a197715155381139c7664 and 321a27fbe3b5af9961b99585ddd365a9cc855e38 .

if you can't reproduce, you could reduce the Time.elapsed() > 3000 value

OK, I reduced it to 300:

setoption name MultiPV value 4
position fen r1bq1b1r/pppp1kpp/2n2n2/8/3pP3/5N2/PPP2PPP/RNBQK2R/Pbp w KQ - 1
go depth 20
info depth 15 seldepth 26 multipv 4 score cp -341 nodes 2202675 nps 1199060 hashfull 818 tbhits 0 time 1837 pv f3d4 d7d5 e1g1 c6d4 d1d4 f6e4 b1c3 f8c5 d4d5 d8d5 c3d5 c7c6 d5f4 h8e8 f4d3 c5b6 c1e3 c8f5 e3b6 a7b6 f1e1 e4f6
info depth 16 seldepth 27 multipv 1 score cp -271 nodes 3351895 nps 1202257 hashfull 936 tbhits 0 time 2788 pv e4e5 f6e4 f3d4 c6d4 d1d4 d7d5 e5d6 e4f6 d4c4 c8e6 c4c7 d8c7 d6c7 f8d6 b1c3 d6c7 c3b5 c7a5 c2c3 a5b6 c1f4 f6d5
info depth 16 seldepth 27 multipv 2 score cp -331 nodes 3351895 nps 1202257 hashfull 936 tbhits 0 time 2788 pv d1e2 d7d5 e4e5 f6e4 b1d2 e4d2 c1d2 c8f5 e1g1 h7h6 b2b4 a7a6 b4b5 a6b5 e2b5 a8b8 b5b2 d4d3
info depth 16 seldepth 27 multipv 3 score cp -339 nodes 3351895 nps 1202257 hashfull 936 tbhits 0 time 2788 pv f3d4 d7d5 e1g1 c6d4 d1d4 f6e4 b1c3 f8c5 d4d5 d8d5 c3d5 c8f5 c1e3 c5d6 a1d1 e4f6 c2c3 h8e8 f2f3 f6d5 d1d5 e8e3
info depth 16 seldepth 27 multipv 4 score cp -344 nodes 3351895 nps 1202257 hashfull 936 tbhits 0 time 2788 pv e1g1 f6e4 b1c3 d7d5 c3e4 d5e4 f3g5 f7g8 g5e4 d8d5 f1e1 c8f5 c2c3 a8d8 e4g3 f5g6 c1f4 d4c3 b2c3 d8d7 d1b3
info depth 17 seldepth 30 multipv 1 score cp -283 nodes 3874868 nps 1198907 hashfull 960 tbhits 0 time 3232 pv e4e5 f6e4 e1g1 d7d5 c2c3 d4c3 b1c3 e4c3 b2c3 f8e7 d1d3 d8d7 c1g5 d7f5 d3d2 h7h6 g5e7 c6e7 a1e1 c7c5 d2e3
info depth 16 seldepth 30 multipv 2 score cp -331 nodes 3874868 nps 1198907 hashfull 960 tbhits 0 time 3232 pv d1e2 d7d5 e4e5 f6e4 b1d2 e4d2 c1d2 c8f5 e1g1 h7h6 b2b4 a7a6 b4b5 a6b5 e2b5 a8b8 b5b2 d4d3
info depth 16 seldepth 30 multipv 3 score cp -339 nodes 3874868 nps 1198907 hashfull 960 tbhits 0 time 3232 pv f3d4 d7d5 e1g1 c6d4 d1d4 f6e4 b1c3 f8c5 d4d5 d8d5 c3d5 c8f5 c1e3 c5d6 a1d1 e4f6 c2c3 h8e8 f2f3 f6d5 d1d5 e8e3
info depth 16 seldepth 30 multipv 4 score cp -344 nodes 3874868 nps 1198907 hashfull 960 tbhits 0 time 3232 pv e1g1 f6e4 b1c3 d7d5 c3e4 d5e4 f3g5 f7g8 g5e4 d8d5 f1e1 c8f5 c2c3 a8d8 e4g3 f5g6 c1f4 d4c3 b2c3 d8d7 d1b3
info depth 17 seldepth 30 multipv 1 score cp -283 nodes 4529033 nps 1190597 hashfull 980 tbhits 0 time 3804 pv e4e5 f6e4 e1g1 d7d5 c2c3 d4c3 b1c3 e4c3 b2c3 f8e7 d1d3 d8d7 c1g5 d7f5 d3d2 h7h6 g5e7 c6e7 a1e1 c7c5 d2e3
info depth 17 seldepth 30 multipv 2 score cp -330 nodes 4529033 nps 1190597 hashfull 980 tbhits 0 time 3804 pv d1e2 d7d5 e4e5 f6e4 e1g1 f8e7 b1d2 e4d2 e2d2 h8f8 f3d4 c6d4 d2d4 c7c5 d4c3 f7g8 c1e3 c5c4 c3d4 c8e6 f2f3
info depth 16 seldepth 30 multipv 3 score cp -339 nodes 4529033 nps 1190597 hashfull 980 tbhits 0 time 3804 pv f3d4 d7d5 e1g1 c6d4 d1d4 f6e4 b1c3 f8c5 d4d5 d8d5 c3d5 c8f5 c1e3 c5d6 a1d1 e4f6 c2c3 h8e8 f2f3 f6d5 d1d5 e8e3

What I'm looking for is mixed printing of varying depths such as highlighted above, right?

Yes :-/ I don't see it there

Duplicated with latest master:

setoption name MultiPV value 4
position fen r1bq1b1r/pppp1kpp/2n2n2/8/3pP3/5N2/PPP2PPP/RNBQK2R/Pbp w KQ - 1
go depth 10
info depth 5 seldepth 6 multipv 1 score cp -167 nodes 4470 nps 745000 tbhits 0 time 6 pv e4e5 f6e4 c2c3 d8e7 d1c2
info depth 5 seldepth 6 multipv 2 score cp -266 nodes 4470 nps 745000 tbhits 0 time 6 pv d1e2 d7d6 e1g1 f7e8 f1d1
info depth 5 seldepth 6 multipv 3 score cp -273 nodes 4470 nps 745000 tbhits 0 time 6 pv f3g5 f7e8 e1g1 d8e7 f2f3 e7c5
info depth 5 seldepth 7 multipv 4 score cp -277 upperbound nodes 4470 nps 745000 tbhits 0 time 6 pv e1g1 d8e7 c2c3 f6e4 c3d4

That said, the more I think about official-stockfish/Stockfish/issues/1392... maybe printing upperbound values is expected behavior? In multi-PV mode you can't exactly print fewer than N PVs...

Was this page helpful?
0 / 5 - 0 ratings