Komodo 12.1

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
User avatar
Eelco de Groot
Posts: 3975
Joined: Sun Mar 12, 2006 1:40 am
Location: Groningen

Re: Komodo 12.1

Post by Eelco de Groot » Tue Jul 31, 2018 8:27 pm

mjlef wrote:
Tue Jun 05, 2018 2:09 pm
Eelco de Groot wrote:
Tue Jun 05, 2018 1:41 pm
by Werewolf » Tue Jun 05, 2018 11:10 am
The issue is whether scaling of MCTS has inherent properties - like alpha beta did for ages before Lazy - where we can predict with confidence what the efficiency will be on N threads and how hard it gets as N rises. If it turns out that at 12 it begins to drop - and that is inherent with this method (rather than a by-product of a new idea the Komodo team are trying) - it makes a huge difference.

I'm interested in knowing if long-term we can do better than N^ 0.8 etc.
Without any theory, I'd say it is some random walk. Monte Carlo with 12 threads is the same as one thread searching twelve times longer? It probably scales well to at least 64 threads because I believe that was what Alpha Zero was using. Duplicate games with almost random moves will be rare in chess. But Stockfish, without a book, on 64 threads Lazy Eval was still very predictable in the opening. I am still suspicious of positions like

[Event "?"]
[Site "?"]
[Date "2018.06.05"]
[Round "?"]
[White "?"]
[Black "?"]
[Result "*"]
[SetUp "1"]
[FEN "rn3r1k/pn1p1ppq/bpp4p/7P/4N1Q1/6P1/PP3PB1/R1B1R1K1 w - -"]

1. Bg5 f5 2. Qf4 hxg5 3. Nxg5 Qxh5 {4. g4!}*


Image
rn3r1k/pn1p2p1/bpp5/5pNq/5Q2/6P1/PP3PB1/R3R1K1 w - -

(Kaissa still needs about depth 27 in the diagram position to find 4. g4 or 4. Bf3. And that is with Multi PV = 15 :?)

Engine: Kaissa III (512 MB)
by T. Romstad, M. Costalba, J. Kiiski, G. Linscott

33 201:24 +1.80 4.g4 Qg6 (28.957.594.395) 2396

33 201:24 +1.70 4.Bf3 Qg6 5.Kg2 Kg8 6.Rad1 Nc5 7.Rd6 (28.957.594.395) 2396

33 201:24 +0.13 4.Rad1 Kg8 5.Bf3 Qh6 6.b4 Bb5 7.Kg2 Nd8
8.Rd6 Ne6 9.Rdxe6 dxe6 10.Rxe6 g6
11.Qd6 Kg7 (28.957.594.395) 2396

33 201:24 0.00 4.Re7 Nc5 5.Bf3 Qg6 6.Kg2 Kg8 7.Rh1 Ne6
8.Qh4 Qh6 9.Qxh6 gxh6 10.Nxe6 dxe6
11.Rxh6 Bc4 12.b3 Bd5 13.Bxd5 exd5
14.Rg6+ Kh8 (28.957.594.395) 2396

33 201:24 -1.38 4.Rac1 Kg8 5.Bf3 Qh6 6.Kg2 Nd8 7.Re5 d6
8.Rxf5 Nd7 9.Rxf8+ Nxf8 10.Bxc6 Nfe6
11.Nxe6 Qxf4 12.gxf4 Nxc6 13.Nc7 Bb7
14.Nxa8 Bxa8 15.Kh3 Kf7 16.Kg3 Bb7
17.Kg4 (28.957.594.395) 2396

33 201:24 -1.52 4.Re5 Kg8 5.Bf3 Qg6 6.Kg2 Nd8 7.Rh1 Ne6 (28.957.594.395) 2396

33 201:24 -1.59 4.b4 Nd8 5.Bf3 Qg6 6.Re7 Ne6 7.Nxe6 dxe6
8.Re1 Bc8 9.Qh4+ Kg8 10.b5 a5
11.bxc6 Na6 12.Rd1 Qh6 13.Qxh6 gxh6
14.a4 Nc5 15.c7 (28.957.594.395) 2396

33 201:24 -2.52 4.a4 Kg8 (28.957.594.395) 2396

33 201:24 -2.75 4.b3 Kg8 5.Bf3 Qh6 6.Kg2 Nc5 7.Rh1 Ne6
8.Nxe6 Qxe6 9.Qh4 Qh6 10.Qxh6 gxh6
11.Rxh6 Bd3 12.Rah1 Be4 13.Bxe4 fxe4
14.R1h4 (28.957.594.395) 2396

33 201:24 -2.75 4.Bh1 Kg8 5.Bf3 Qh6 6.Kg2 Nc5 7.Rh1 Ne6
8.Nxe6 Qxe6 9.Qh4 Qh6 10.Qxh6 gxh6
11.Rxh6 (28.957.594.395) 2396

33 201:24 -2.86 4.Rab1 Nc5 5.Bf3 Qg6 6.Kg2 Kg8 7.Rh1 Ne6
8.Nxe6 Qxe6 9.Qh4 Qh6 10.Qb4 Qf6
11.Rh5 d5 12.Rbh1 Kf7 13.Qf4 Ke8
14.Rh7 (28.957.594.395) 2396

33 201:24 -2.89 4.a3 Kg8 5.Bf3 Qh6 6.Rad1 (28.957.594.395) 2396

33 201:24 -3.00 4.Be4 Kg8 (28.957.594.395) 2396

32 201:24 -3.05 4.Red1 Qg4 5.Qe3 (28.957.594.395) 2396

32 201:24 -3.99 4.Re3 Qg4 5.Qxg4 fxg4 (28.957.594.395) 2396

best move: g3-g4 time: 201:24.344 min n/s: 2.396.292 nodes: 28.957.594.395

Was Alpha Zeto trained on this, probably not but you really have to search very Monte Carlo like to find this... Of course we have been spoilt with all the Late Move Reductions since Tord and Fabien, just to name two famous programmers, popularized it somewhere before Rybka 1.0. Fritz 10 probably is much better than Stockfish.
Just for info, Komodo 12.1.1 on 2 thread finds g4 in under 3 seconds.
Nothing to do with Komodo 12.1 and also not sharing any codechanges with the Kaissa III derivative of Stockfish or Kaissa I, but a new Kaissa IV can be fetched from the Rybka forum shortly. It is mostly Stockfish and the newest master code from 31 July 2018, and only very little changes to that. Evaluation is pure Stockfish and there are just a few changes to search. It will search a little wider now than Stockfish because it has less emphasis on extending the PV. This because it is more meant for a 'second opinion' (Compared to Mac Brain it is much less complex in its changes I think although I don't know Mike's sourcecode at all. It is not meant for especially hard positions; that was not my goal or intent.) It will still search quite deep though and the number of iterations especially will easily be higher than Stockfish for the same reason of not extending the PV as much. Extending the PV is mainly meant to improve short time control tactics. It is -progressively I think- less needed on very long timecontrols.

I tried to upload here but a file of this size is not allowed, understandably because of the storage capacity constraints on Talkchess.

Only sixteen lines were changed. I do consider this only a beta version though and what little testing was done was done only on the 2018-07-07 (July 07) Master code of Stockfish. A _modern and a _bmi2 compile included compiled with TDM-GCC

Benchnumber:
===========================
Total time (ms) : 1160
Nodes searched : 1878904
Nodes/second : 1619744

Will be posted in 'Yet another Stockfish derivative'
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan

Post Reply