Home * Engines * Komodo

a chess engine by primary author Don Dailey, supported by chess advisor and evaluation expert and Don's long time collaborateur Larry Kaufman. Komodo derived in January 2010 from their former engine Doch, uses bitboards as internal board representation, and has a sophisticated search and a knowledge based, huge evaluation. Komodo is a standalone chess engine supporting the UCI protocol. As of December 2011, Komodo 4 is commercial [1] , earlier versions running under Windows, Linux and Mac OS and Android are free, available from the Komodo download site [2]. In June 2013, Komodo 5.1 MP was released, able to run on multiple processors [3]. 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 [4]. He introduced Mark Lefler as new member of the Komodo team [5] [6]. 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 final [7] [8] [9].
Komodo coin, issued by Indonesia [10]

Tournament Play

Komodo played the ICT 2010 in Leiden over the board, and further the CCT12 and CCT14. Komodo had its first tournament success in 2013, when it won the CCT15 with 6½/7 [11], and later that year the TCEC Season 5 after qualifying for the Superfinal and 48 thrilling games versus Stockfish by a margin of 25-23. In 2014, Komodo won the CCT16 with 5½/6.



Don Dailey on Minor Promotions [12] :
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.


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 [13]:
















Quality of Knowledge

Don Dailey in a reply to Vincent Diepeveen [14]:
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 [15] :
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 [16] :
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 [17]
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?

See also


Forum Posts





External Links

Chess Engine



  1. ^ Komodo 4 Multi Processor UCI chess engine download
  2. ^ Komodo chess engine by Don Dailey and Larry Kaufman - Downloads
  3. ^ Komodo 5.1 MP has been released by Don Dailey, CCC, June 17, 2013
  4. ^ Komodo release by Don Dailey, CCC, October 01, 2013
  5. ^ Re: Who is Don/Larry's new partner!? by Don Dailey, CCC, October 08, 2013
  6. ^ Official announcement - New Komodo Author by Don Dailey, CCC, October 14, 2013
  7. ^ Komodo chess engine - Don Daily (1956 - 2013)
  8. ^ Don Dailey, 1956-2013 by Larry Kaufman, CCC, November 23, 2013
  9. ^ nTCEC - Superfinal
  10. ^ Komodo dragon from Wikipedia
  11. ^ Komodo CCT release by Don Dailey, CCC, May 03, 2013
  12. ^ Re: Botvinnik Markov revisited by Don Dailey, CCC, June 27, 2010
  13. ^ Re: What is the correct value of the pieces? by Don Dailey, CCC, October 10, 2012
  14. ^ Re: How effective is move ordering from TT? by Don Dailey, CCC, August 10, 2012
  15. ^ Re: Lazy eval by Don Dailey, CCC, December 02, 2011
  16. ^ Re: Don- Don't understand Komodo 4?? A bug?? by Don Dailey, CCC, December 26, 2011
  17. ^ Re: Peculiarity of Komodo 5.1MP by Don Dailey, CCC, June 19, 2013
  18. ^ Part 1 covers Houdini, Rybka, Komodo, Stockfish, Critter, Naum, Chiron and Spike
  19. ^ Roanoke Star from Wikipedia

What links here?

Up one Level