Skip to content

Conversation

@mstembera
Copy link
Contributor

@mstembera mstembera commented Sep 13, 2018

STC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 26142 W: 5717 L: 5460 D: 14965
http://tests.stockfishchess.org/tests/view/5b9823ab0ebc592cf275aeae

LTC:
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 72395 W: 11980 L: 11574 D: 48841
http://tests.stockfishchess.org/tests/view/5b98490b0ebc592cf275b2cf

Variant of an original idea by @pb00067. Credit and thanks to him.

@locutus2

  1. I have tried several tests that fix or limit the amount of reduction but the best I got was a green STC and yellow LTC for this http://tests.stockfishchess.org/tests/view/5b9a506b0ebc592cf275d960 version capping the reductions to 4. Running instrumented bench to a depth of 24 revealed that the highest reduction that ever happened was by 9. The number of reductions by amount reduced was as follows:
    R1 = 596, R2 = 329, R3=158, R4=78, R5=29, R6=13, R7=6, R8=3, R9=2
    Given the data I think the capped version just got a bit less lucky than this original. We could try capping to say 3 or 5 and see what happens if you like.

  2. I have an SMP test scheduled to see if setting completedDepth and lastBestMoveDepth to adjustedDepth is stronger or weaker than to rootDepth.
    http://tests.stockfishchess.org/tests/view/5b9ae8a10ebc592cf275e353
    If that makes sense to you please approve the test. Otherwise please advise.

Rebased bench: 3314347

mstembera referenced this pull request in mstembera/Stockfish Sep 13, 2018
@lp--
Copy link

lp-- commented Sep 15, 2018

This is interesting patch. Can we see also what happening at SMP LTC? Some patches dealing with fail highs were failing at SMP LTC, while passing everything else.

Behavior at SMP becomes interesting with this patch. Threads which were skipping certain depths, now can search some skips also

@mstembera
Copy link
Contributor Author

So the suggested changes by @locutus2 for completedDepth and lastBestMoveDepth are stronger and included in this pull request.
http://tests.stockfishchess.org/tests/view/5b9ae8a10ebc592cf275e353
ELO: 1.77 +-2.1 (95%) LOS: 95.2%
Total: 40000 W: 7607 L: 7403 D: 24990

@lp-- Thanks for the comment. I leave it to @locutus2 to decide what he wants to do.

@lucabrivio
Copy link

By the way I'd like to try something like this patch to cap the depth reduction at lower depths once this is committed... but anyways, there's much room for experiments, I guess.

@pb00068
Copy link
Contributor

pb00068 commented Oct 12, 2018

@mstembera It's interesting that once a patch passed very quickly doing almost the exact opposite
http://tests.stockfishchess.org/tests/view/5796ee640ebc591c761f5b00 unfortunately it was not commitable...

pb00068 added a commit to pb00068/Stockfish that referenced this pull request Oct 12, 2018
pb00068 added a commit to pb00068/Stockfish that referenced this pull request Oct 12, 2018
pb00068 added a commit to pb00068/Stockfish that referenced this pull request Oct 12, 2018
pb00068 added a commit to pb00068/Stockfish that referenced this pull request Oct 12, 2018
@mstembera
Copy link
Contributor Author

@pb00068 Maybe I'm misreading but I don't think it was doing the opposite. It was skipping resolving fail high completely while this resolves it at a reduced depth.

@lp--
Copy link

lp-- commented Oct 13, 2018

@mstembera @pb00068 Yes, that patch was just skipping fail highs, while this one in addition to skipping faill high at current depth resolve them at lower depth. The problem was was not passing LTC SMP test sprt[0, 5] 7 threads. But that patch was passing STC and LTC faster than this one.

So I don't see added value of resolving fail highs at lower depth until this patch is not tested at LTC SMP.

@lp--
Copy link

lp-- commented Oct 13, 2018

@pb00068 I see you ran variations of skipping fail highs. I think I or someone else tried something like that. Or maybe I tried locally.
But the crucial part which you don't have in tests is to increase thinking time as skipping fail highs saves huge amount time and you need to give it back SF thinks too little

Current patch instead of increasing thinking time use for resolving fail high at lower depth so maybe increase or decrease is not needed. But it is good to check also what is going with time here.

@mstembera
Copy link
Contributor Author

@lp-- Thanks for your comments. I have rebased the patch and am happy to run any additional tests the maintainers request. Alternately feel free to schedule any test you think necessary.

@vondele
Copy link
Member

vondele commented Oct 14, 2018

@mstembera I agree that a SMP LTC test could be done in this case... with 4 or 8 threads, they're relatively quick these days.

@ElbertoOne
Copy link

ElbertoOne commented Oct 15, 2018

FYI: I started a SMP test here: http://tests.stockfishchess.org/tests/view/5bc47f860ebc592439f80682 (STC for now)
Edit: the test ended red.

@NKONSTANTAKIS
Copy link

I think an LTC SMP should also be done

@mstembera
Copy link
Contributor Author

Ok given the SMP test failed I plan on closing this pull request shortly unless someone has a better idea on how to proceed.

@mstembera mstembera closed this Oct 16, 2018
pb00068 added a commit to pb00068/Stockfish that referenced this pull request Oct 18, 2018
@pb00068
Copy link
Contributor

pb00068 commented Oct 18, 2018

@mstembera Maybe we can bring it through as improvement for single-thread only
(pass STC and LTC [0,5] singlethread and pass multi-thread non-regression [-3,1].

I have submitted http://tests.stockfishchess.org/tests/view/5bc857920ebc592439f85765
with same logic but restricted to mainthread,

@NKONSTANTAKIS
Copy link

But if we do this, aren't we making the single thread tests less relevant in general for the multi-thread performance? I think the reverse is more logical, to focus on improving multi-thread and non regress (or even regress!) on single. Single is only for lists anyway and to look good, every user and tournament uses multi.

@ElbertoOne
Copy link

I think the main problem for multiple threads is that we have a lower completed depth for the thread that fails high with this patch. Hence it will not be chosen (via the voting) as best thread. An idea to overcome this is needed.

@vondele
Copy link
Member

vondele commented Oct 18, 2018

that could be easily tested by keeping completedDepth equal to rootDepth

@pb00068
Copy link
Contributor

pb00068 commented Oct 18, 2018

I agree that multithread nowadays ist more important than singlethread but no reason for throwing away this idea: if it can improve play on singlecore while not hurting smp, then why not commit it?

@pb00068
Copy link
Contributor

pb00068 commented Oct 18, 2018

@ElbertoOne I think best-thread voting plays almost no role if we are just facing fail-high's while our thinking time runs out. Anyhow if LTC passes, a multi-threaded [-3,1] test will show us if there really is a (unsolvable) problem.

@NKONSTANTAKIS
Copy link

@pb00068 My concern is that by making single-thread a special case, we distance its behavior to multi-thread. Hence future single-thread generic testing could be indirectly and unpredictably less related to multi-thread. I might be wrong on this.

@pb00068
Copy link
Contributor

pb00068 commented Oct 18, 2018

@NKONSTANTAKIS Actually I don't make single-thread a special case, I just let do the main thread something different. The main-tread is already today very specialized, for example it's the unique not skipping rootDepth's while iterative deepening.

@mstembera
Copy link
Contributor Author

@pb00068 I will be unavailable for the next few days. Please feel free to open a new pull request if it passes the relevant tests. Good luck!

pb00068 added a commit to pb00068/Stockfish that referenced this pull request Oct 19, 2018
This helps resolving consecutive FH's during aspiration more efficiently

STC:
http://tests.stockfishchess.org/tests/view/5bc857920ebc592439f85765
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 4992 W: 1134 L: 980 D: 2878 Elo +10.72 

LTC:
http://tests.stockfishchess.org/tests/view/5bc868050ebc592439f857ef
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 8123 W: 1363 L: 1210 D: 5550 Elo +6.54

No-Regression test with 8 threads, tc=15+0.15:
http://tests.stockfishchess.org/tests/view/5bc874ca0ebc592439f85938
LLR: 2.94 (-2.94,2.94) [-3.00,1.00]
Total: 24740 W: 3977 L: 3863 D: 16900 Elo +1.60

This was a cooperation between me and Michael Stembera:
-me recognizing SF having problems with resolving FH's efficiently at
high depths, thus starting some tests based on consecutive FH's.
-mstembera picking up the idea with first success at STC & LTC (so full
credits to him!)
-me suggesting how to resolve the issues pinpointed by S.G on PR official-stockfish#1768
and finally restricting the logic to the main thread so that it don't
regresses at multi-thread.

bench: 3314347
snicolet pushed a commit that referenced this pull request Oct 25, 2018
This helps resolving consecutive FH's during aspiration more efficiently

STC:
http://tests.stockfishchess.org/tests/view/5bc857920ebc592439f85765
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 4992 W: 1134 L: 980 D: 2878 Elo +10.72 

LTC:
http://tests.stockfishchess.org/tests/view/5bc868050ebc592439f857ef
LLR: 2.95 (-2.94,2.94) [0.00,5.00]
Total: 8123 W: 1363 L: 1210 D: 5550 Elo +6.54

No-Regression test with 8 threads, tc=15+0.15:
http://tests.stockfishchess.org/tests/view/5bc874ca0ebc592439f85938
LLR: 2.94 (-2.94,2.94) [-3.00,1.00]
Total: 24740 W: 3977 L: 3863 D: 16900 Elo +1.60

This was a cooperation between me and Michael Stembera:
-me recognizing SF having problems with resolving FH's efficiently at
high depths, thus starting some tests based on consecutive FH's.
-mstembera picking up the idea with first success at STC & LTC (so full
credits to him!)
-me suggesting how to resolve the issues pinpointed by S.G on PR #1768
and finally restricting the logic to the main thread so that it don't
regresses at multi-thread.

bench: 3314347
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants