*********************************************

* Komodo 9 for Windows, Linux and OSX *

* (includes Komodo 9 through 9.42) *

*********************************************

© 2016 Mark Lefler and Larry Kaufman

These instructions are for Komodo 9 through 9.42.

Komodo 9 is an improvement over all previous Komodo versions and supports multi-core computers and endgame tablebases. Komodo has won highly respected engine tournaments such as TCEC, CCT, and the World Blitz and World Rapid championships. Komodo 9 is approximately +50 Elo stronger than Komodo 8 on one core according to the independent IPON test as well as our own internal testing, with the gain increasing with more cores, to about 60 Elo on 4 cores based on our own tests. Independent testing by CEGT puts the gain in the 47 to 65 Elo range at intermediate time controls, depending on the exact time control and number of cores.

Komodo 9.1 is about 15 Elo stronger than Komodo 9 based on averaging several rating lists.

Komodo 9.2 is about 15 Elo stronger than Komodo 9.1, probably more than this against weaker engines (and humans) due to our new “contempt” feature described below.

Komodo 9.3 is about 10 Elo stronger than Komodo 9.2 based on the rating lists plus our own testing. Against Komodo 8 our tests show gains of nearly 100 Elo on 1 and 4 threads. Komodo 9.3 is a slightly improved version of Komodo 9.3x which won the TCEC Season 8 Championship, widely considered to be the unofficial world computer chess championship. It is also an upgraded version of the engine that decisively defeated two strong Grandmasters in serious six game matches despite giving odds of rook for knight or the f7 pawn.

Komodo 9.4 further improves the Komodo 9 series, with a gain over 9.3 of 15 Elo based on 10,300 games at 2’ + 1” on single thread. The gains appear to be slightly more than this in MP mode, using two, four, or many threads. Against Komodo 9 we have a plus 52 Elo result after 1759 single-thread games at 2’ + 1”, and a whopping plus 77 Elo result on four threads after just 110 games. It is an improved version of the one that defeated World Champion Candidate and U.S. Champion Hikaru Nakamura by 2.5 to 1.5 despite giving him rook for knight, f2 pawn, f7 pawn, and four move handicaps. There are two important new features “Contempt for White” and “Dynamism” described below.
Key features of Komodo 9:

- Evaluation developed by a Grandmaster

- Multi-core support (up to 64 cores)

- Syzygy endgame tablebase support

What's new in Komodo 9:

- Evaluation improvements

- better assessment of mobility/activity

- improved handling of drawish positions

- improved understanding of attacks on the king

- Improved search performance (much better time-to-depth)

- Chess 960 (Fischer Random Chess) support

- Persistent Hash: save and restore analysis

- Over 100 other improvements throughout the software

Changes for Komodo 9.01:

- improved sudden depth time allocation
- engine now ignores repeated commands from GUIs

Changes for Komodo 9.02:

- corrected a castling rights issue in reading fen positions

Changes for Komodo 9.1:

- New Endgame term
- Revised LMR rules
- Re-tuned eval terms
- More efficient hash table
- speedups
- Revision to King Safety
- Improved MP scaling
- Improved trade-down incentives
- Revised Selectivity Default
- Improved Persistent Hash
- Better fen position parser

Changes for Komodo 9.2:

- New Contempt replaces Drawscore
- Major re-tuning of most eval and many search parameters
- Improved in time management
- Improved move-ordering
- Increased weight on all “dynamic” terms

Changes for Komodo 9.3:

- Added “suppress” command to suppress communication between the engine and GUI useful in remote connections or very fast games
- Better tuning of evaluation
- Better time management
- Better handling of blocked positions tied with improved Contempt
- Improved pruning
- Speedups
- Improved MultiPV
- Bishop outposts
- Stricter extension rules
- Smaller evals with equal material
- Improved MP on some NUMA machines
- Making forced moves more quickly
- Increased King Safety weight
- Increased Selectivity

Changes for Komodo 9.4:

- Added “Contempt for White” command to improve analysis
- Added “Dynamism” which lets the user control the weighting of dynamic evaluation terms. A low setting will make Komodo play conservatively; a high setting will encourage risky play.
- Various speedups
- Revised MP search
- Better threat evaluations
- New eval terms
- Reduced queen value and queen mobility, which were too high in 9.3.
- Improved King Safety
- Improved passed pawn evaluation
- New Endgame knowledge
- Improved book handling
- Revised LMR and Extensions
- Revised quiescence search
- Hash table changes
- More than 70 evaluation and search changes

Changes for Komodo 9.42:

- Repaired possible slowdown,elo effect unknown.
- About a 5 elo improvement from another bug fix

Changes for Komodo 9.42:

- Repaired bug

NOTE: Komodo 9.42 is a bug fix and at least 5 Elo gain over Komodo 9.4. We recommend all Komodo 9.4 owners upgrade to Komodo 9.42.

===================

If you have Windows

===================

The executables for Windows are in the /Windows subdirectory in the zip file you received. You will find two versions:

komodo-9.42-64bit.exe

komodo-9.42-32bit.exe

We recommend using the 64-bit version as long as your hardware and version of Windows supports it. The 32 bit version will be slower than the 64 bit version. Please copy the files from the zip file to a directory on your local hard drive. Note that some antivirus programs may prevent extracting executable files from zip files. You may need to make an exception for the komodo zip files. We recommend making one directory to keep all your komodo files in one place (such as c:\engines), so they are easier to find and add to your chess programs. You will find help on installing in common GUIs here:

http://komodochess.com/installation.htm

=================

If you have Linux

=================

The binary for Linux is in the /Linux subdirectory:

komodo-9.42-linux : This version is optimized for present day (2015) machines but should still run on older machines that support 64 bits.

The program must have execute permissions to run. You can set permissions with this command in a terminal window:

$ chmod +x komodo-9.42-linux

====================

If you have Mac OS X

====================

The binary for Mac OS X is in the /OSX subdirectory.

komodo-9.42-64-osx

The file must have execute permissions to run. If you have trouble getting your chess GUI to load Komodo 9.42, you can try setting these permissions from the Terminal.app with this command (run from the same directory as the Komodo OS X executable):

$ chmod +x komodo-9.42-64-osx

Some suggested free GUIs for OSX are:

ChessX: http://chessx.sourceforge.net/node/3

Scid vs Mac: http://www.macupdate.com/app/mac/47867/scid-vs.-mac

And a good paid GUI is HIARCS Chess Explorer: http://www.hiarcs.com/mac-chess-explorer.htm

================

Android Versions

================

Due to huge variations in hardware and OS versions, an Android version is not included in the package, but can be bought via this link to the Google Play Store for Komodo 9:

https://play.google.com/store/apps/details?id=com.komodochess.komodo9

The Google Play Store automatically detects and installs the appropriate version for your hardware and Android version. Due to licensing, the Android version must be installed by Google Play Store, then the App needs to be opened once to register it.

## HOW TO RUN

Komodo is a chess engine. It calculates moves but does not include a chessboard. The Komodo web site recommends a few 'chessboard' programs (aka GUI) which can be used with Komodo, some of them are open source and of very high quality (http://komodochess.com/installation.htm). For best play it is very important to set the Threads value to match your system. If you do not already own a good UCI-compliant GUI (such as Fritz, Chessbase, Hiarcs Chess Explorer or the Shredder GUI), a good free one for Windows is Arena (playwitharena.com), version 3.0.

Komodo's settings can be changed from the GUI. We will explain the non-standard settings below. See setHash.txt for additional information on setting the hash size based on your specific machine and time control.

The most important settings to adjust for your computer are Threads and Hash. They are described below.

Table Memory

------------

This parameter determines how much memory, in megabytes, Komodo will allocate to various internal tables such as the pawn structure hash table, evaluation cache and others. If you allocate too much memory it can negatively impact your performance and if you allocate too little it can also nega tively impact your performance. The default value of 64 is probably close to optimal for fast play on most machines cira 2013 but you may want to experiment with raising this value if you have a high performance machine. For slower games (or analysis) and/or for machines with many cores, higher values are appropriate. We have raised the upper limit in Komodo 9.2 and higher to 1024 megabytes since this may be appropriate for TCEC or similar use with many cores and long time limits.

Use LMR

-------

LMR (Late Move Reductions) is a search technique that is designed to aggressively prune moves from the search tree so much deeper depths can be obtained. However this can sometimes miss important moves. Komodo gives you the option to turn this on or off, along with another parameter, reduction, to adjust it. In general Komodo will play much stronger with this option turned on, but one might want to experiment with turning it off in order to see if a much shallower, but more thorough search might help in some position.

Null Move Pruning

-----------------

Like LMR, this is also a technique to aggressively prune moves from the search tree. Komodo plays much stronger with this turned ON, but occasionally things can be missed, especially very deep threats or zugzwang positions. This option allows you to experiment in the case that you have a difficult position which cannot be resolved and want to see if a much shallower, but more thorough, search would help.

Overhead ms

-----------

This is designed to compensate for slow user interfaces or slow internet connections, where a fraction of a second can be lost in the processing and transferring of information back and forth from the engine to the interface. The value is in milliseconds (1/1000th of a second). This should probably be left alone unless you see the program starting to forfeit games due to exhausting its time. If you see such time forfeits, increase this value. The default is 30. For internet play where lag is an issue a value of 60 is a good first try, but may have to go to 100 or even higher.

Drawscore (Komodo 9.1 and earlier)

----------------------------------

In some programs this is called the "contempt factor" and defines the value of a draw. The default is -10 which means that the program will have a slight tendency to avoid a draw, even if its position is slightly worse. A value of -100 would cause Komodo to avoid a draw unless it was at least a pawn down. A value of 100 would cause Komodo to seek draws unless it was at least a pawn ahead. In the endgame Drawscore is automatically brought closer to zero since the chance of winning from a slightly inferior position is much lower in the endgame. Note Komodo 9.2 and higher have replaced Drawscore with a new Contempt parameter, documented below.

Contempt (Komodo 9.2 and higher)

--------------------------------

Contempt is used the computer’s evaluation to discourage piece trades and draws early in the game. The default value is 10 (in version 9.3 and higher) which should help against weaker opponents. Against near-equal opponents, set Contempt to zero for best results. Against a human opponent, Contempt should be at least 25 even if he is the World Champion. Suggested values include 50 against grandmasters, 75 against masters, and 100 against strong amateurs. A good rule of thumb is to subtract the opponent's Elo rating from 3400 (estimated rating of Komodo 9.3 on a quadcore machine) and divide by 15. Higher Contempt values are especially appropriate when Komodo is giving a handicap. For handicap play, a good rule of thumb is to set Contempt for one third of the value of the initial position based on a one minute search in infinite analysis mode. For example, if giving knight odds, if an initial one minute analysis search shows Komodo as down by 3.5 pawns, set Contempt to 117, which is 117 centipawns, or a third of the disadvantage.

Contempt for White (Komodo 9.4 and higher)

------------------------------------------

The “Contempt for White” setting forces Komodo to always use Contempt for White’s point of view, instead of from whatever side Komodo is searching or analyzing now. A positive score will discourage White from accepting a draw or trading pieces. A negative score will encourage Komodo to trade pieces and seek a draw. For black, the opposite sign should be used (for example, a negative score will discourage black from exchanging pieces). “Contempt for White” also prevents Komodo from automatically setting Contempt to zero when running infinite analysis. This helps make analysis consistent when switching sides and exploring various lines and lets you include a non-zero Contempt in your analysis. Note when playing against the computer, and you wish to use a non-zero Contempt, either turn off “Contempt for White” so that Contempt will apply to the Computer’s side, or you can use the above description to set an appropriate Contempt for the side that Komodo is playing.

Note that Contempt inflates the reported score. On average a setting of 10 will increase the score by ten centipawns (0.1 in most GUIs), more in the opening and less in the endgame. Contempt is turned off in Infinite analysis unless “Contempt for White” (described below) is used.

Time Usage

----------

This provides the ability to manipulate Komodo's time control heuristics, to make it allocate either more aggressively or less aggressively. The default is 0 which is what we believe is the ideal setting but remains to be tested. You can make it play faster by using a negative number or you can make it allocate time more aggressively by setting it to a positive value. The range of values is between -9 and +9. It's very unlikely extreme values will be play well, so we suggest experimenting with relatively modest changes to the default.

Threads

-------

For best performance it is very important to correctly set the Threads value. The default is 1. For best performance we suggest setting this to the number of "real" cores on your machine. Consult your computer manufacturer to determine how many cpu cores your machine has (not to be confused with the number of cpu threads your machine has).

For example, on an i7 with hyperthreading, you typically have 4 "real" cores and 4 hyper-threaded or virtual cores. While the operating system may report 8 cores on this machine, there are only 4 cores and so you setting Threads to 4.

Note some GUIs, including ChessBase, change the default to the number of cores reported by the operating system, so you might need to change the default value in such cases. If you find your computer to be sluggish or unresponsive when running Komodo, decrease the Threads value by 1. This will free up a thread for the operating system and other programs.

Hash

----

This defines the maximum amount of memory to use for the transposition table - a major factor in the performance of modern chess programs. The default is set to 128 (in megabytes) which is probably more than adequate for standard use. However, see the document setHASH.txt for more specific information on how this should be set for ultimate performance. All 64 bit versions allow up to 65536 megabytes (64 GB) to be allocated, assuming your system has that much. The Windows 32 bit version limits this to 2048 megabytes due to hardware and operating system limitations. Note Komodo’s hash entry size is a bit different from other programs. If you allocate 16 megabytes, Komodo will only use 12, and not use any more until you set it to 24, and so on with each doubling. This is normal.

Tablebase support

-----------------

Komodo supports Ronald de Man's 'Syzygy' endgame tablebases. Endgame tablebases can be used to provide absolute knowledge about chess positions in which only a few pieces are left on the board (at the time of this writing, the Syzygy bases support up to 6-man positions [including the kings]).

The Syzygy tablebases are "Distance to Zero" (DTZ) tablebases. This means that they report, in addition to a definitive win/draw/loss (WDL) score, the distance to the zeroing of the 50-move draw clock. Unlike other endgame tablebases which report Distance to Mate (DTM), the Syzygy bases won't always report the fastest win from a particular endgame position, but you can be confident that the WDL score (and moves) provided by a tablebase probe are accurate.

How to get the Syzygy tablebases: at the moment, the best way to get the required files is via the file-sharing service BitTorrent (on OSX, Transmission is a good client, on Windows and Linux, Vuze). The necessary .torrent files can be found at http://oics.olympuschess.com/tracker/index.php. You should get at least the 3-4-5-man set (approx. 2 GB). The 6-man set is an additional approx. 138 GB large and will take a while to download. The 3-4-5-man set is also available for direct download from:

http://chess.cygnitec.com/tablebases/syzygy/.

Installing the Syzygy tablebases: create a folder on your computer's hard drive and place the fully-downloaded .rtbw (WDL files) and .rtbz (DTZ files) in it. If you have an SSD drive, we recommend that you place the WDL files in a folder on that drive, especially if you are using the 6-man bases.

Understanding the Syzygy tablebase output: if the number of pieces on the board is less than or equal to the 'Syzygy Probe Limit' [see below] or the number of pieces supported by your installation of the Syzygy bases, whichever is less, Komodo will report a score which can be interpreted as a win, draw or loss.

A score of +/- #1000 indicates a tablebase win or loss for a root tablebase position, that is, for a 6-man position with 6-man tablebases installed. For tablebase wins or losses which are determined during search, for instance for a 6-man position with 5-man tablebases installed, Komodo will return +/- 250.00 respectively. Komodo will attempt to resolve these scores to actual mate scores, although this may take a long time.

Finally, a score of 0.00 or +/- 0.02 indicates a draw (+/- 0.02 is a draw which would be a win/loss if the 50-move rule were not in effect).

Syzygy tablebase options: Komodo has a number of UCI options to control its use of the tablebases.

Use Syzygy: when on (default), Komodo will try to use the Syzygy tablebases specified in the 'SyzygyPath' option (see below). When off, Komodo will not attempt to load the bases.

SyzygyPath: this defines an absolute path on your computer to the tablebase files. On Windows, multiple paths can be separated with a semicolon (;) character. On OSX and Linux, multiple paths should be separated with the colon (:) character. For instance,

on Windows

"C:/Tablebases/Syzygy"

"C:/Tablebases/Syzygy;D:/SyzygyWDL"

on OSX and Linux

"/home/me/syzygy"

"/home/me/syzygy:/media/ssd/wdl"

Syzygy Probe Depth: this determines the depth at which tablebases will be probed during search (note that the root position will always be probed. If 'Use Syzygy' is enabled and the number of pieces on the board is less than or equal to the 'Syzygy Probe Limit' [see below] or the number of pieces supported by your installation of the Syzygy bases, whichever is less). A higher number means that Komodo will wait longer to begin probing the tablebases for any particular search. The default depth is 2 half-plies.

Syzygy Probe Limit: this determines how many pieces need to be on the board before Komodo begins probing (even at the root). By default, this is set to 6 (the current upper limit of the Syzygy tablebases). Of course, if you have only the 3-4-5-man set, Komodo will only begin probing the bases when a 5-man position arises. Note 6 piece use can take up both a lot of drive storage, but RAM during the search.

Syzygy 50 Move Rule: when on (default), Komodo will respect the 50-move rule in its tablebase evaluation (a won position which requires more than 50 moves without a pawn move or capture to win will be scored as a draw). When off, Komodo will ignore the 50-move rule in its evaluation (the same position would receive a winning score).

Selectivity

-----------

You can adjust how aggressively Komodo prunes using the "Selectivity" parameter. Higher values will encourage Komodo to prune more at low search depths, leading to a deeper overall search at an increasing risk of missing some moves. The default in Komodo 9.42 is 131. A setting of 246 (or more) will set selectivity to the maximum.

Reduction

---------

This controls how deeply Komodo searches. Higher "Reduction" values will cause Komodo to reduce parts of the tree more, increasing overall search depth but possibly missing some good lines. The default is 0, meaning no adjustment to what we consider best. We are fairly confident that the best value on a single thread is close to zero, but we have not yet determined whether other values may be better on many threads, so feel free to experiment.

King Safety

-----------

This controls how highly Komodo scores king safety. The higher the value, the greater the effects of attacks on the king in Komodo's evaluation. The default is 65 in Komodo 9.3 and 70 in Komodo 9.4 and 9.42.

Persistent Hash

---------------

This is useful for long analysis. It allows you to save the current Hash Table to your hard drive, then reload it later. First, set a name for the file in the "Hash File Name" option. Most GUIs will require you to close the dialog box with an OK to “set” the name. You should then stop the search/analysis, return to the UCI parameters then, then click the "Save Hash to File" button. To later reload the saved information, first make sure the "Hash File Name" is for the file you want, then click "Load Hash from File". Once it loads, you may continue analysis. You must make sure the current hash filename is the same as what was used when you saved the file. Note that hash files can be very large and can take a lot of time to save and load, so make sure you have enough disk space to use them.

Suppress

--------

This feature allows you to reduce the data Komodo outputs for the first X ply of a search. For example, with a value of 8 Komodo will not print move sequences or scores for the first 8 ply. This can save on communication overhead with the GUI and is useful when Komodo is running over a network connection or is playing at fast time controls. The default value is 0, meaning all data is reported and nothing is suppressed.

Dynamism

--------

Introduced in Komodo 9.4, Dynamism lets you control how important Komodo thinks the dynamic part of the evaluation is. The default is 100. Values under 100 reduce the dynamic evaluation, while values above 100 increase the dynamic evaluation. Lower values will make Komodo play more conservatively,while with higher values it will play riskier moves. More static parts of the evaluation like material and pawn structure are not changed by Dynamism. Although the parameter can be set from 0 to 200, single-digit values will cause bizarre play. A value around 80 will in general produce more realistic evaluations than the default 100, although it will weaken play by 20 to 30 Elo points.

Opening Books

-------------

Komodo can use Polyglot opening books. When playing with a book, Komodo will move instantly if it finds a legal move leading to a position in the book. We have a free book with lots of variety on our site on this page:

https://komodochess.com/downloads.htm

Just click the download link next to "Komodo Polyglot book" near the bottom of the page. You can find more Polyglot opening books on the internet.

Komodo’s default book name is komodo.bin, which is what the free book above is named. So after downloading it, open the ZIP file and copy the komodo.bin book to the same directory you put the your komodo executable in. Also, make sure the OwnBook UCI option is checked, and that "Book File" is also set to komodo.bin. The option “Best Book Line” when set will make Komodo play the best scoring book move, or randomly select between two or more book moves with the same score. When off, it will tend to play the best scoring move more often, but still give the weaker moves some play. Komodo 9.4 better handles opening books modified using the free scid program (https://sourceforge.net/projects/scid/files/).

## Credits

Authors: Larry Kaufman, Don Dailey and Mark Lefler.

We wish to thank Jeremy Bernstein for his fine work in adding Syzygy tablebase support to Komodo. We also wish to thank our webmaster Jesse Gersenson who makes us look good on the web, and who has organized a series of matches with Komodo giving handicaps to Grandmasters and operated Komodo in them. And another big thanks to all the people who have offered to test and run matches with Komodo.

WARNING: Komodo Chess and this readme file are (C) 2013-2016 by Mark Lefler and Larry Kaufman.

FBI Warning

The unauthorized reproduction or distribution of a copyrighted work is illegal. Criminal copyright infringement, including infringement without monetary gain, is investigated by the FBI and is punishable by fines and federal imprisonment.