Komodo

From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * Komodo

Komodo logo [1]

Komodo,
a chess engine by primary author Don Dailey (died at the age of 57 on November 22, 2013) and since October 2013, by Mark Lefler, supported by chess advisor and evaluation expert and Don's long time collaborator Larry Kaufman. Since 2015, opening book expert Erdogan Günes is responsible for Komodo's book moves. At the WCCC 2016 Komodo 10.x first time won the Shannon Trophy, defended by subsequent versions at the WCCC 2017, WCCC 2018 and WCCC 2019 so far. In November 2020, the Dragon by Komodo Chess was released, featuring NNUE technology.

Komodo appeared in January 2010 derived from Don's former engine Doch. It uses bitboards as internal board representation, and has a sophisticated search and a knowledge based, balanced evaluation. Komodo is a standalone chess engine supporting the UCI protocol and is available for multiple platforms and operating systems, and is therefore compatible with free and commercial UCI compliant chess graphical user interfaces and database front ends.

As of December 2011, Komodo became commercial with version 4 [2], earlier versions running under Windows, Linux, Mac OS and Android are available from the Komodo download site, free for non-commercial use [3] [4]. Next release date was May 2013, with CCT15 winner Komodo CCT [5].

Further Versions

Komodo 5

Komodo 5.1 MP, released in June 2013, was a major rewrite in C++11, able to perform a parallel search to run on multiple processors [6] .

Komodo 6

In October 2013, Don Dailey announced the release of Komodo 6 and also bad news concerning the future status of Komodo due to his fatal illness of a acute form of Leukemia [7] . He introduced Mark Lefler as new member of the Komodo team [8] [9] . Don Dailey died November 22, 2013 at age 57, just about the same time that Komodo pulled ahead of Stockfish by winning game 2 in the TCEC Season 5 final [10] [11] .

Komodo TCEC and 7

As winner of the TCEC 5 final, Komodo TCEC was released on December 04, 2013 [12], the further improved Komodo 7 on May 21, 2014, now supporting Syzygy Bases [13], probing code interface implementation by Jeremy Bernstein [14].

Komodo 8

Komodo 8, released on September 05, 2014, was a substantial improvement over Komodo 7a, which was already rated among the top three chess engines on almost all rating lists [15]. Komodo 8 supports Syzygy Bases and is available for Windows, Linux, Mac OS and Android, the latter immediately available for import in Chess for Android and in Chess for Glass [16]. Since mid September 2014, Komodo 8 for Windows is available as ChessBase engine, bundled with the Deep Fritz interface, Syzygy bases not included [17].

Komodo 9

Komodo 9, released on April 28, 2015, continued the progress with approximately +50 Elo over Komodo 8 due to improved search, evaluation, and time management, as well as more efficient use of multiprocessing [18]. Most noticeable is the increase in search depth reached in a given amount of time, which is due to better extension, reduction, and pruning rules [19]. Further, Komodo 9 now features Chess960 and a persistant hash to save and restore analysis.

Komodo 10

On May 23, 2016, Komodo 10 came with revised and improved king safety, pawn storm and passed pawn evaluation, as well with revised LMR, NMP, IID and history heuristic concerning search, and is about 60 Elo stronger than Komodo 9 [20]. In July 2016, Komodo 10.x won the Shannon Trophy.

Komodo 11

On May 23, 2017, Komodo 11.01 was released, which corrected some minor issues of Komodo 11, which was already released by ChessBase a few days before. It is estimated about 55 Elo stronger than Komodo 10 at intermediate time controls, gains related to evaluation [21], revised quiescence search, singular extensions, LMR , and parallel search [22] . Komodo 11.2, released on July 17, 2017, was the version which won the WCCC 2017 [23]. Komodo 11.3 was released on March 04, 2018 with subsequent improvements [24]. It also comes with a BMI2 compile for compatible x86-64 processors - so far not recommend for AMD Ryzen due to its slow PEXT implementation [25].

Komodo 12

Komodo 12 was released in May 2018. Beside the classical, slightly improved engine, Komodo 12 features an optional Monte-Carlo Tree Search (MCTS), the release likely influenced by the AlphaZero hype. However, as confirmed by Mark Lefler [26] implementing MCTS was already an old idea of the Komodo team - also due to Don Dailey's computer Go experience building an UCT player.

Komodo MCTS

In Komodo's MCTS mode the search tree is expanded in best-first manner based on winning probabilities determined neither by random playouts nor by a neural network, but a tiny alpha-beta search plus quiescence and static evaluation, also similar to UCT, dealing with the crucial trade-off between exploration and exploitation. While playing strength is lower with MCTS, positional play and judgement may well be better in many positions [27], not to mention a more risky and entertaining playing style.

Komodo 13

In May 2019, Komodo 13 was released with substantial improvements in MCTS mode. Quote by Larry Kaufman [28]:

The changes from Komodo 12 to 13 in MCTS mode (which is where most of the changes were made) are so vast and pervasive that it is hopeless to even try to enumerate them. The elo gains are in the 300 to 400 range on any number of threads, so it's really a very different engine. Virtually every aspect was improved, some of the changes being rather radical. Most cannot be explained without describing in detail how Komodo MCTS works, which is pretty unique. As for regular Komodo, there were quite a few changes, but only a few that show up as measurable elo gains on one to four threads. To be honest, if you never use MultiPV or MCTS mode, don't have more than a few cores, and already own Komodo 12, I wouldn't recommend spending the money for Komodo 13 unless the cost is insignificant to you. But I think that most people do use MultiPV, and if so Komodo 13 MCTS is clearly better than Komodo 12 in either mode.

Komodo 14

Komodo 14, released in May 2020 with following improvements announced by Larry Kaufman [29]:

The improvements cover a wide range of issues, including extensions, null move, King Safety, time management, and many more. There is one new feature added since Komodo 13.3, "Armageddon" mode, which tells Komodo that White (or Black) must win, draws are scored as losses for that color. When draws are counted as losses for White, knowing this improves Komodo's performance as White by about 30 elo according to our tests. In Armageddon mode, the specified color (usually White) not only avoids clear draws, but adjusts Contempt by an amount we determined was most helpful for Armageddon play. Testing on one thread in Armageddon mode suggests that on a modern laptop, if White gets one minute total plus 1% increment, and Black gets half a minute plus 1% increment plus draw odds, then chances are fairly close to balanced. Other features added since Komodo 13 include more levels, Personalities, and Auto-Skill. Standard mode remains the strongest when Multi-PV is not in use, while MCTS mode is generally strongest when both are using Multi-PV.

Dragon

Along with the release of Komodo 14.1 on November 02, 2020, Larry Kaufman announced Dragon, featuring NNUE technology due to support of Dietrich Kappe and Dmitry Pervov, applied and trained with Komodo games and evaluation [30]. Improvements for both standard and MCTS mode are expected in the 150 to 200 Elo range. Dragon by Komodo Chess was released on November 10, 2020 [31].

Tournament Play

Komodo played the ICT 2010 in Leiden over the board, and further the CCT12 and CCT14. It had its first tournament success in 2013, when it won the CCT15 with 6½/7, and further the CCT16 in 2014 with 5½/6.

TCEC

In 2013, Komodo started to play the TCEC, most often fighting with Stockfish for the title. Komodo won the TCEC Season 5, TCEC Season 7 in 2014, and the TCEC Season 8 in Fall 2015.

WCCC / WCSC / WCRCC

2015

At the WCCC 2015 in Leiden, Komodo 9.x won the Blitz tournament, and became runner-up behind and losing from the massively parallel and distributed Jonny which played on a cluster of 100x24 cores. After the revenge winning against Jonny at the equal hardware WCSC 2015 a few days later, Komodo was unlucky and made too many draws against apparently weaker opponents [32], to became third behind Shredder and Ginkgo. Two weeks later, Komodo won the WCRCC 2015 convincingly with 9/9!

KomodoTeamWCCC2015.JPG

Komodo team Erdogan Günes and Mark Lefler during the WCCC 2015 in Leiden [33]

2016

The 2016 ICGA tournaments in Leiden were a huge success for Komodo 10.x, which did not only won the Shannon Trophy in the open hardware World Computer Chess Championship after a nerve-racking six games play-off versus defending champion Jonny - Komodo with 48 threads on 60 core Intel i7 versus Jonny's cluster of 100x24 AMD cores, but also the equal hardware World Chess Software Championship with 5/6 - 1½ points ahead of runner-up Jonny and Shredder. Two weeks later Komodo defended its ACCA title in rapid chess at the WCRCC 2016 with 14 wins and one draw versus runner-up Andscacs, that is 14½ out of 15.

WCCC2016 TeamKomodoShannonTrophy.jpg

WCCC 2016, Komodo team Erdogan Günes and Mark Lefler with Shannon Trophy [34]

2017

In 2017, Komodo could defend it titles at the WCRCC 2017 online, and the soon later released Komodo 11.2 the ICGA WCCC 2017 over the board, again in a play-off versus Jonny. Komodo further became runner-up at the uniform hardware WCSC 2017 behind Shredder.

WCCC2017 Erdo ShannonTrophy.JPG

WCCC 2017, Komodo opening book author and operator Erdogan Günes with the Shannon Trophy [35]

2018

In 2018 Komodo 12 continued its success by winning the ICGA WCCC 2018, WCSC 2018 and Blitz tournaments in Stockholm, and later that year the WCRCC 2018 online.

2019

Komodo 13.1 [36] was able to defend both titles at the ICGA WCCC 2019 and WCSC 2019 in Macau, the WCCC on a 128 cores.

Quotes

Promotions

Don Dailey on Minor Promotions [37] :

Komodo never looks at rook or bishop under promotions and only looks at knight under promotions when it gives check. But even for the knight case there are positions where my rule won't find the right move. 

Evaluation

Centered Point Values

In 2012, Don Dailey gave following point values in a kind of millipawn scale, tapered between opening and endgame phase with knight and bishop values constant - positional scores from mobility and piece square tables centered around zero [38] :

Pawn Knight Bishop Rook Queen
Opening 600 3100 3225 4350 9100
Ending 925 3100 3225 5475 9700

Quality of Knowledge

Don Dailey in a reply to Vincent Diepeveen [39] :

Don, Your program is kind of a beancounter that relies heavily positional upon piece square tables. 
You could not be more incorrect. We have piece square tables in Komodo that are a very minor part of Komodo and get very small weights but Komodo puts a huge emphasis on getting the evaluation right with hundreds of evaluation terms that are carefully balanced to produce a find positional chess program. I personally believe that Komodo has the best evaluation function of any chess program in the world.
...
Total amount of knowledge is not what is important, it's the QUALITY of the knowledge that is. Komodo tries to have the most balanced evaluation function possible, and probably much more knowledge than most programs. I don't believe in quantity but Komodo evolved to have a lot of knowledge anyway - probably because every piece of knowledge in Komodo is needed. I tried removing knowledge in Komodo to get speed and we were not able to remove ANYTHING without noticing that it weakened Komodo, at least slightly. 

Lazy Evaluation

Don Dailey on Selectivity and Lazy Evaluation [40] :

Komodo pushes the selectivity pretty hard and we DO get a decent nodes per second increase with Lazy evaluation but the problem is that we get a big increase in nodes. It is this way because we assume we will not make scout if the guesstimate is too low. So we miss some of the beta cutoffs, you cannot have your cake and eat it too. Komodo's positional component can vary enormously so we do take a lot of damage positionally when we use lazy margins. 

Node Counting

Don Dailey on counting nodes in Komodo 4 [41] :

 As Larry mentioned we are counting nodes differently. More specifically, both versions have always counted a node when a move is made, but Komodo 3 would count nodes that were forward pruned (if the move was actually executed) and Komodo 4 does not. In Komodo 3 I figured that if any work was done (such as attack testing after making the move) it should count as a node. But in Komodo 4 we changed this because the move is technically being pruned (even if we had to check it out a bit first.) Of course if a move is searched or reduced it is counted in both versions.
It's mostly semantics, but we get more stable node counts and this works better for fixed node testing which we sometimes do.
I have several things in mind for getting serious speedups in future versions of Komodo which will bring the speed of Komodo back up to that of other programs, or at least not as far away. I believe Komodo is one of the slower programs in terms of raw search speed as we have put a really heavy focus on having a smart program and little on heavy optimization. The reasoning is the same for delaying the MP stuff too, we want to start with a really strong program before we play the optimization games. 

Parallel Search

Don Dailey about aspects of parallel search in Komodo 5.1 MP [42]

How you approach a problem is strongly related to how you DEFINE a problem or task. The goal of MP is to make the program play as well as possible using more cores, to take advantage of the hardware as fully as possible and the only measure that really matters (at least to us) is playing strength. We ALL wish that our program played as if it they were 4x faster when playing on 4 cores - but nobody gets that kind of efficiency.
Some have implied that we search wider because we don't get quite the same increase in depth and that this is a horrible thing. The intuition is that if that if it works you could do it on 1 thread too. However I do not think that follows. The problem is that 4 threads is just not 4x better than 1 thread no matter how good your MP implementation, so it always comes down to how to best utilize what you have. Anything goes in my opinion if it gets more out of extra cores in terms of ELO.
It is well known that programs do not scale well beyond a few processors. Going from 128 to 256 processors gives you very little. One of the things Larry and I want to do is to explore how to better exploit more and more cores and hopefully what we learn will translate to better performance on few cores. It is unlikely to be minor refinements to what we already do.
I'm not breaking new ground as this has been studied for decades and lots of ideas have been tried - I'm not pretending otherwise. But we will look at new original ideas we come up with and revisit old-fashioned ideas that have been tried in the past. A lot of the old ideas which have been rejected have later come back to life, so there is no idea that is off-limits.
As far as whether searching "wider" is a bad thing and isn't real parallelism, I disagree with that. If 4 cores were 4 times better than one I probably would agree but since it isn't, we have to determine where the effort is best spent. If you have 11 people in the room and 10 are doctors and the one who isn't has a heart attack, what is the best use of the doctors time? Not all 10 doctors can give CPR even though normally that would be very best use of their talent, but surely one of them will be calling for an ambulance while another will be doing CPR and the rest will be doing whatever they can to assist, even in little ways.
So if you are getting very little benefit out of additional processors you need to figure out if there is something else they can do to be more useful. Perhaps one thing is to deal with the lines that are severely reduced in the single core program? 

Larry Kaufman in October 2018 [43]:

Komodo (regular, not MCTS) has had a problem for many years now when running on many cores with large hash tables, as in TCEC. It takes several minutes to reach full speed. In three or four hour games this is not a big deal, but in a blitz event it is absolutely fatal, as you can see. I'm glad to report that Mark has finally solved the problem (as far as we can test, up to 36 cores), and this fix should be in time for the next TCEC and for our next release. Hopefully the next CCC event should show a huge difference. 

See also

Publications

Forum Posts

2010

2011

2012

Re: The scaling of Houdini 3 and Komodo 5 by Don Dailey, CCC, November 16, 2012

2013

Re: Komodo TCEC: Serious castling bug ! by Mark Lefler, CCC, December 11, 2013

2014

Komodo 8

2015

Komodo 9

Re: Komodo 9 Announcement by Mark Lefler, CCC, April 28, 2015

2016

Komodo 10

2017

Komodo 11

2018

Re: Komodo 11.3 by Mark Lefler, CCC, March 04, 2018 » AMD, BMI2 PEXT

Komodo 12

Re: Komodo 12 and MCTS by Mark Lefler, CCC, May 14, 2018
Re: Komodo MCTS and Komodo (Standard?) in CCCC current Blitz battle by Larry Kaufman, CCC, October 16, 2018

2019

Komodo 13

2020

Komodo 14

Dragon

Matches

What will the match score be for Komodo against FM Bolzoni? by Larry Kaufman, CCC, July 22, 2015
  1. Komodo vs Bolzoni, 1st game Broadcast by Vincent Lejeune, CCC, July 26, 2015
  2. Komodo vs Bolzoni, 2nd game Broadcast by Vincent Lejeune, CCC, July 26, 2015
  3. Komodo vs Bolzoni, 3rd game Broadcast by Vincent Lejeune, CCC, July 26, 2015
  4. Komodo vs Bolzoni, 4th game Broadcast by Vincent Lejeune, CCC, August 02, 2015
  5. Komodo vs Bolzoni, 5th game Broadcast by Vincent Lejeune, CCC, August 02, 2015
  6. Komodo vs Bolzoni, 6th (and last) game Broadcast by Vincent Lejeune, CCC, August 02, 2015

External Links

Chess Engine

Purchase

Available Versions of Komodo

Interviews

Reports

Komodo 8

Android

Komodo 9

Komodo 10

Komodo 11

Komodo 12/MCTS

Komodo 13

Rating Lists

Misc

References

  1. Komodo 14 Chess Engine - Official Site
  2. Komodo 4 UCI chess engine download
  3. Available Versions of Komodo
  4. Komodo chess engine by Don Dailey and Larry Kaufman - Downloads
  5. Komodo CCT release by Don Dailey, CCC, May 03, 2013
  6. Komodo 5.1 MP has been released by Don Dailey, CCC, June 17, 2013
  7. Komodo release by Don Dailey, CCC, October 01, 2013
  8. Re: Who is Don/Larry's new partner!? by Don Dailey, CCC, October 08, 2013
  9. Official announcement - New Komodo Author by Don Dailey, CCC, October 14, 2013
  10. Komodo chess engine - Don Daily (1956 - 2013)
  11. Don Dailey, 1956-2013 by Larry Kaufman, CCC, November 23, 2013
  12. Komodo TCEC released by Larry Kaufman, CCC, December 04, 2013
  13. Komodo chess engine - Komodo 7
  14. Re: Komodo Syzygy evals by Larry Kaufman, CCC, May 21, 2014
  15. Komodo chess engine - Komodo 8
  16. More on Komodo 8 by Aart Bik, September 9, 2014
  17. Komodo 8 - ChessBase Shop, September 10, 2014
  18. Komodo chess engine - Komodo 9
  19. Komodo 9 Announcement by Larry Kaufman, CCC, April 22, 2015
  20. Komodo chess engine - Komodo 10
  21. Komodo 11.01 by Larry Kaufman, CCC, May 23, 2017
  22. Komodo 11 - Change Log
  23. Komodo 11.2 by Larry Kaufman, CCC, July 17, 2017
  24. Komodo 11.3 released by Larry Kaufman, CCC, March 04, 2018
  25. Re: Komodo 11.3 by Mark Lefler, CCC, March 04, 2018 » AMD, BMI2 PEXT
  26. Re: Komodo 12 and MCTS by Mark Lefler, CCC, May 14, 2018
  27. Komodo 12 and MCTS by Larry Kaufman, CCC, May 14, 2018
  28. Re: Komodo 13 released by Larry Kaufman, CCC, May 18, 2019
  29. Komodo 14 released by Larry Kaufman, CCC, May 12, 2020
  30. Komodo 14.1 Release and Dragon Announcement by Larry Kaufman, CCC, November 02, 2020
  31. Dragon by Komodo Chess by Larry Kaufman, CCC, November 10, 2020
  32. THE upset of the WC: Maverick-Komodo drawn! by Jeroen Noomen, CCC, July 05, 2015
  33. Photo by Gerd Isenberg
  34. ICGA Events 2016: Photos Day 7 by Jan Krabbenbos
  35. Photo by Gerd Isenberg, July 07, 2017
  36. Komodo 13.1 released by Larry Kaufman, CCC, August 19, 2019
  37. Re: Botvinnik Markov revisited by Don Dailey, CCC, June 27, 2010
  38. Re: What is the correct value of the pieces? by Don Dailey, CCC, October 10, 2012
  39. Re: How effective is move ordering from TT? by Don Dailey, CCC, August 10, 2012
  40. Re: Lazy eval by Don Dailey, CCC, December 02, 2011
  41. Re: Don- Don't understand Komodo 4?? A bug?? by Don Dailey, CCC, December 26, 2011
  42. Re: Peculiarity of Komodo 5.1MP by Don Dailey, CCC, June 19, 2013
  43. Re: Komodo MCTS and Komodo (Standard?) in CCCC current Blitz battle by Larry Kaufman, CCC, October 16, 2018
  44. Part 1 covers Houdini, Rybka, Komodo, Stockfish, Critter, Naum, Chiron and Spike
  45. Victor Angel Bolzoni - Wikipedia.br (Breton)
  46. Victor Mikhalevski from Wikipedia
  47. Hikaru Nakamura from Wikipedia
  48. Regan's latest: Depth of Satisficing by Carl Lumma, CCC, October 09, 2015
  49. Roanoke Star from Wikipedia
  50. Komodo 8: Deep Blue revisited (1/2) by Graham Banks, CCC, December 27, 2014
  51. Komodo Android Experiment by Ted Summers, CCC, September 24, 2014

Up one Level