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

* Komodo 9 for Windows, Linux and OSX *

* (includes the Komodo 9.02 update) *

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

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 and CCT. 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.
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

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

If you have Windows

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

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

komodo-9.02-64bit.exe

komodo-9.02-32bit.exe

We recommend using the 64-bit version as long as your version of Windows supports it.

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

If you have Linux

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

The binaries for Linux are in the /Linux subdirectory. You will find two versions:

komodo-9.02-linux : This version is optimized for present day (2015) machines

komodo-9.02-linux-generic : Use this version if komodo-9.02-linux does not work

Note that komodo-9.02-linux-generic computes the same moves but is slower. Both versions are 64-bit.

The program must have execute permissions to run. You can set these permissions with this command:

$ chmod +x komodo-9.02-linux*

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

If you have Mac OS X

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

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

komodo-9.02-64-osx

The file must have execute permissions to run. If you have trouble getting your chess GUI to load Komodo 9.02, 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.02-64-osx

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

Android Versions

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

Due to huge variations in hardware and OS versions, an Android version is no longer included in the package. Here is a 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.

==========

HOW TO RUN

==========

Komodo is a chess engine. It calculates moves but does not include a chessboard. The Komodo web site suggests a few 'chessboard' programs (aka GUI) which can be used with Komodo, some of them open source and of very high quality.

Komodo's settings can be changed from the GUI. We will explain the non-standard settings now. See komodo-settings.txt and setHash.txt for additional information.

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 negatively impact your performance. The default value of 64 is probably close to optimal on most machines cira 2013 but you may want to experiment with lowering (or raising) this value if you have an entry level machine or a particularly high performance machine.

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

---------

In some programs this is called the "contempt factor" and defines the value of a draw. The default is -7 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 an inferior position is much lower in the endgame.

Time Usage

----------

This provides the ability to manipulate Komodo's time control heuristics, to make it allocation 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

-------

The default number of threads is 1, so for multi-core machines you will want to change this value. For ultimate performance we suggest setting this to the number of "real" cores on your machine.

For example, on an i7 with hyper-threading, you typically have 4 "real" cores and 4 hyper-threaded or virtual cores. The operating system will probably report 8 cores but we recommend setting Komodo for 4 threads in this case.

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 64000 megabytes (64 GB) to be allocated. The Windows 32 bit version limits this to 2048 megabytes due to hardware and operating system limitations.

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.

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 many moves Komodo prunes using the "Selectivity" parameter. Higher values will encourage Komodo to prune more moves at low search depths, leading to a deeper overall search at an increasing risk of missing some moves. The default is 80.

Reduction

---------

This controls how deeply Komodo searches. Higher "Reduction" values will cause Komodo to reduce parts of the tree faster, increasing overall search depth but possibly missing some good moves. The default is 0.

King Safety

-----------

This controls how highly Komodo score king safety. The higher the value, the greater the effects of attacks on the king in Komodo's evaluation. The default is 65.

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 file name 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.

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 another big thanks to all the people that have offered to test and run matches with Komodo.