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

* Komodo 13.02 for Windows, Linux and OSX *

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

© 2019 Mark Lefler and Larry Kaufman

These instructions explain the settings and usage for the Komodo 13.02 chess engine. This is an improvement on the versions of Komodo that won the 2018 World Computer Chess Championship (WCCC), the 2018 World Software Chess Championship, the 2017 TCEC Blitz Championship, the 2018 World Blitz Computer Championship, and the 2018 World Rapid Chess Championship. Komodo has played many matches on chess.com of four to six games giving substantial handicaps (usually two pawns or something comparable) to strong Grandmasters, including two ranked as World number two in Blitz at the time of their matches (Hikaru Nakamura and Maxime Vachier-LaGrave), without ever losing a match (and only drawing one), at time limits ranging from 10 minutes to 45 minutes plus increments.

NOTE: the most important settings for best strength are Threads and Hash described below.

NOTE: Komodo is a chess engine. It can be used in any chess GUI that uses UCI (Universal Chess Interface) chess engines. You will find instructions for installing it in the HOW TO RUN section below.

Komodo 13.02 is an improvement over all previous Komodo versions. Komodo supports multi-core computers and endgame tablebases. Komodo has won many highly respected engine tournaments multiple times, such as TCEC, CCT, the World Computer Chess Championship, the World Blitz and the World Rapid championships. Komodo 13.02 in standard mode is about 10 elo stronger than Komodo 12.3 on one or many threads. In the new MCTS (Monte Carlo Tree Search) mode, the elo gains since 12.3 are significant, around 50 elo on one thread at 10’ + 6” or on four or more threads in blitz or longer games. Gains are similar in increment and in repeating time control modes. We believe that Komodo 13.02 is the strongest Monte-Carlo engine for most personal computers, and is among the top five CPU-based engines. We believe Komodo 13.02 MCTS can benefit from as many as 128 threads and that it benefits from using many threads as much as standard engines do. While the MCTS version is not yet competitive with normal Komodo in strength, the gap is now only around eighty elo points, and we believe that it is now stronger than the normal version if both are set to MultiPV 2 or higher. It convincingly defeated Stockfish 10 in a test match when both were set to MultiPV = 6, so we believe that it is the world’s strongest CPU-based engine when using high values for MultiPV. Its playing style and move choices are more like Alpha-Zero than like normal engines, meaning that it is generally less materialistic than normal Komodo, in the style of the spectacular World Champion Mikhail Tal. In general, the MCTS moves are more human-like and more tricky for humans to meet than normal Komodo, because Komodo MCTS does not assume that its opponent will always play the move that Komodo would play. We now recommend using Komodo in MCTS mode for most purposes other than engine vs engine games and perhaps assistance in correspondence games. For game reviews, as a sparring partner, or for preparing openings for over the board play, MCTS is in general the better option.

Komodo 13.02 is an improved version of the program 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 in two hour games. Komodo now includes a BMI2 compile giving extra speed and elo points for machines that can support it.

Key features of Komodo 13.02

- Evaluation developed by a Grandmaster

- Improved Multi-core support (up to 128 threads)

- Syzygy endgame tablebase support, now support up to 7 Piece

- BMI2 support for more speed
- Improved Monte Carlo Tree Search gives a new chess perspective

- Fix for some MCTS display issue

- Greater search depth

- Bug fixes for pondering in MCTS mode and maximum MCTS Hash size

What's new in Komodo 12 and 13:

- New optional Monte Carlo Tree Search
- Added Skill setting
- New Book Moves option to limit number of book moves
- Special compile for BMI2 machines
- Huge initial speed increase on machines with many cores and large Hash Table sizes
- Better NUMA awareness and thread pinning with NUMA Offset
- Now able to use up to 128f Threads in Monte Carlo Mode
- Added 7 piece Syzygy Support

- Improved Contempt
- Improved MCTS Search
- Improved Time Management
- Improved Syzygy with MCTS

In standard search mode, we estimate that Komodo 13.02 is about ten elo points stronger than 12.3. In MCTS mode the gain is much larger, especially at time limits longer than blitz. We predict that the MCTS version on four threads will earn a CCRL blitz rating around 3440. From 13.01 to 13.02 (which fixed minor bugs) the elo gain is about five in all modes.

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

If you have Windows

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

The executables for Windows are in the /Windows subdirectory in the zip file you received. The zip file will be in this format:

komodo-13.02-xxxxxx.zip

Where the xxxxxx part will vary. Inside the zip file’s /Windows subdirectory you will find three versions:

Komodo-13.02-64bit.exe (64 bit for most machines)

komodo-13.02-64bit-bmi2.exe (64 bit for computers supporting BMI2)

Komodo-13.02-32bit.exe (32 bit for older machines)

We recommend using the 64bit BMI2 version as long as your hardware and version of Windows supports it. If your machine does not support the BMI2 instructions, but is 64 bit, use the 64bit version. The 32 bit version will be much slower than the 64 bit versions, and support much less memory. Please copy the files from the zip file to a directory on your local hard drive. 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. With the 64bit versions, Komodo automatically detects if the special popcount instruction is supported by your CPU and uses then if available to speed it up.

NOTE: On AMD Ryzen CPUs you should not use the BMI2 version of Komodo. The Ryzen implementation of the PEXT instruction used in the BMI2 version is very slow, so please do not use the BMI2 version on those machines.

Note: S ome antivirus programs may prevent extracting executable files from zip files. You may need to make an exception for the komodo zip files.

After downloading you will find instructions of how to install Komodo in popular GUIs in the section below HOW TO RUN.

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

If you have Linux

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

The binary for Linux is in the /Linux subdirectory in the zip file you received:

komodo-13.02-linux

komodo-13.02-linux-bmi2

The version ending in BMI2 is for newer Intel CPUS like haswell that can run the BMI2 instruction set. The non BMI2 version is optimized for recent (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-13.02-linux

If you get a message like this:

/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found

Please update your linux libraries using this command:

sudo apt-get upgrade libstdc++6

If this does not fix the issue use these commands:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt-get update

sudo apt-get upgrade libstdc++6

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

If you have Mac OS X

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

The binaries for Mac OS X is in the /OSX subdirectory in the zip file your received. Please copy these from the zip file to a suitable directory on your computer.

komodo-13.02-64-osx

komodo-13.02-64-bmi2-osx

If your machine supports the Intel BMI2, use the version with “bmi2” in the name. Otherwise, use the non-bmiw file.

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

$ chmod +x komodo-13.02-64-osx

If it will still not work in your GUI, then try this:

$ xattr -dr com.apple.quarantine komodo-13.02-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 commercial GUI i s HIARCS Chess Explorer: http://www.hiarcs.com/mac-chess-explorer.htm

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

Android Versions

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

Due to 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 11:

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

Komodo 13 should be added as time permits.

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 you must open the App once to register it.

## HOW TO RUN

Komodo is a chess engine. It calculates moves but does not include a ‘chessboard’ display. The Komodo web site recommends a few 'chessboard' programs (aka Chess GUIs) which can be used with Komodo, some of them are open source and of very high quality. You will find instructions for installing Komodo in many of the most popular GUIs in Windows here:

(http://komodochess.com/installation.htm).

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. For OSX, CHessx and Hiarcs Chess Explorer are popular.

Important: For best play it is very important to set the Threads value to match your system. 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 followed by the other settings.

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 192 (in megabytes) which is probably enough for rapid use but should be set higher for longer think times or four or more cores. It is usually safe, but may not be optimum, to use half of your available memory for Hash, but smaller Hash size will improve performance slightly in fast play. 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. Please 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. Our scheme has the advantage that on a computer with memory equal to a power of 2 GB, such as 8 or 16 or 32 GB, you can generally use ¾ of the memory for Hash instead of just half, while still leaving enough for the operating system and other things.

Threads

-------

For best performance it is very important to correctly set the Threads value. The default is 1. You should usually set Threads to the number of "real" cores on your machine, except as noted below. 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). We recommend running Komodo with Hyperthreading turned off on your computer, although this is debatable and may depend on your hardware; it is pretty clear that Hyperthreading should be off on machines with many cores, but for machines with no more than four or perhaps six cores it’s unclear. You can often find the hyperthreading option in one of the boot up BIOS settings.

If you do run with Hyperthreading on (the default on most machines), there is some evidence that running with six threads may be optimum for a four core machine with eight threads. 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 set Threads to 4 if Hyperthreading is off or to 6 if it is on. We have run some matches which confirm (subject to statistical error) that 6 Threads does score the best on such a machine with Hyperthreading on. On systems with many cores (say 16 or more), it is probably best not to use more than the number of “real” cores even with Hyperthreading on.

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 use by the operating system, GUI and other programs.

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. These are used by Komodo’s evaluation to prevent doing duplicate work. If you allocate too much or too little memory it can negatively impact your performance. The default value of 128 is probably close to optimal for fast play on most machines since 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. We used 512 in our recent tournament victories.

Use LMR

-------

LMR (Late Move Reductions) is a search technique that is designed to aggressively reduce certain moves in the search tree, so greater depths can be obtained. However this can sometimes miss important moves. LMR can be turned "on" or "off". In general Komodo will play much stronger with LMR turned "on", but one might want to experiment with turning it off to try a much shallower, but more thorough, search in some positions. With LMR "on" you can make further adjustments using the parameter Reduction described below.

Null Move Pruning

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

Like LM R, this is also a technique to aggressively prune moves from the search tree. Komodo plays much stronger with Null Move Pruning turned ON, but occasionally things can be missed, especially very deep threats and 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 or interface to a chess server. The value is in milliseconds (1/1000th of a second) and acts as a safety margin. 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 50. For internet play where lag is an issue a value of 75 is a good first try, but may have to go to 100 or even higher if you see time losses. For games with fairly long time controls, 75 is a good value for general use just to be safe since the lost time will not be noticeable at these levels.

Contempt (Komodo 9.2 and higher)

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

A positive Contempt is used by the computer’s evaluation to discourage (or encourage if negative) piece trades, blocked pawn structures, and repetition draws early in the game. Contempt has been redefined with version 11.3 and higher; the default value is now 16 which should help against weaker opponents. Against near-equal opponents, set Contempt to 0 for best results. Against a human opponent, Contempt should be at least 40 even if he is the World Champion. Suggested values include 60 against grandmasters, 75 against International masters, 100 against masters, and 150 against strong amateurs. A good rule of thumb is to subtract the opponent's Elo rating from 3450 (estimated rating of Komodo 13.02 on a quad core machine) and divide by 12. 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 half the value of the initial position based on a one minute search in infinite analysis mode from the human’s point of view. For example, if giving knight odds, if an initial one minute analysis search shows Komodo as down by 3.5 pawns, set Contempt to 175, which is 175 centipawns, or half of the disadvantage. Contempt works with the next option “White Contempt”. In analysis mode, Komodo internally sets Contempt to zero unless “White Contempt” is turned on. Note that Contempt also works now in MCTS mode. Note that the very nature of MCTS makes it act as if a moderate value of Contempt was set, so in general lower values for Contempt make sense for MCTS mode.

White Contempt

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

The “White Contempt” se tting forces Komodo always to use the Contempt value described above from White’s point of view, instead of from whatever side Komodo is searching or analyzing, and also uses Contempt in infinite or analysis mode. If you are playing tournaments with multiple games, this should be turned off since “White Contempt” “locks” Contempt to one color instead of for the side Komodo is currently searching. “White Contempt” is most useful in analyzing positions. A positive value will discourage Komodo playing as White from accepting a draw or trading pieces. A negative Contempt value will encourage Komodo playing as White to trade pieces and seek a draw. For Black, a reversed sign should be used (so a negative value like -10 will discourage Black from exchanging pieces, and a positive value like 10 will encourage Black to seek a draw).

“White Contempt” also prevents Komodo from automatically setting Contempt to zero when running infinite analysis. This helps make anal ysis 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, if you wish to use a non-zero Contempt, either turn off “White Contempt” so that Contempt will apply to the Computer’s side, or you can use the above description to set an appropriate Contempt for the specific side that Komodo is playing. Please note if “White Contempt” is off, in infinite search or analysis mode, Komodo will always use a value of 0 for Contempt.

Note that Contempt modifies the reported scores. On average a setting of 10 will increase the score for that side by ten centipawns (0.1 in most GUIs) in the opening, much less in the endgame. Contempt is turned off in Infinite analysis unless “White Contempt” (described below) is used. Note that Contempt has no effect in MCTS mode.

Time Usage

----------

This provides the ability to manipulate Komodo's time control heuristics, to make it allocate time more quickly or less quickly. The default is 0 which is what we believe is the ideal setting but remains to be tested at longer time controls. You can make it play faster (use less time) 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 play well, so we suggest experimenting with relatively modest changes to the default. The ideal value may depend on the time limit.

Tablebase (Syzygy) 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 7-man positions, including the kings). Adding Syzygy to your computer and Komodo can increase the playing strength. Syzygy now works in both standard and MCTS mode. Note in MCTS mode, once the root position is found in a tablebase, MCTS will stop probing, but limit its search to only the game preserving moves (for example it will only look at winning moves for MCTS). This is done to ensure the proper game result, but to also allow MCTS to analyze which moves have best winning chances against inaccurate play.

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. Komodo 12.3 and higher now support 7 piece Syzygy. See the notes below n them. 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. 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,and 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).

Smart Syzygy: When this is checked/on, Komodo will always check Syzygy TBs for (Syzygy Probe Limit - 1) pieces and under at all depths in the main search. Otherwise, it will only consult Syzygy when the Probe Depth and Probe Limit conditions are met. This feature is designed to allow Syzygy access from slower hard drives.

For instance, set Syzygy Probe Limit to 6 (the default if you have the 6-man tablebase files), Probe Depth to 10 and enable Smart Syzygy. At search depth 10 and higher, Komodo will use Syzygy for 6-piece (and 7 piece if you have them and Syzygy Probe LImit is set to 7) positions. At lower search depths, it will only consult Syzygy when there are 5 pieces or fewer on the board. You can adjust Probe Depth to see what gives you the best results. Note that the 5-piece Syzygy tablebases used during search take up about 0.5 GB, which the operating system will cache in memory for fast access. The 6-piece and 7-piece tablebase access will generally cause slowdowns when using standard hard drives. Defaults are set for common laptops with standard hard drives or where overheating of SSDs can be a problem that slows access. The defaults as Syzygy Probe Limit = 6, Smart Syzygy = true and Syzygy Probe Depth = 8. On desktop machines with lots of memory and a fast SSD, you can set Smart Syzygy = false and Syzygy Probe Depth = 2 for better performance.

A NOTE ABOUT 7-piece SYZYGY

The entire 7-piece Syzygy set is about 14 terabytes (or 14000 GB). Few computers have enough storage space currently to hold all of that. Also, many internet service providers impose monthly download limits, or charge more if you exceed those limits. But you can probably get some benefit from 7 piece Syzygy. You can instead choose to download a subset of the 7 piece. The two most common 7 piece endings are KRPPvKRP and KPPPvKPP, which total 32 GB and about 3 GB respectively. You can get 7 piece Syzygy files here:

http://tablebase.lichess.ovh/tables/standard/.

If you have additional space on a fast SSD, the file Syzygy7.pdf included in your Komodo download files lists the top 48 most common 7 piece endgames. You can select which files seem most important based on your available storage space.

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 13.02 is 170. A setting of 250 will set selectivity to the maximum. Note in MCTS mode, Selectivity is internally set to an optimized value.

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. 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. Note in MCTS mode, Reduction is internally set to an optimized value. Please note that Reduction changes now have a bigger effect on how much Komodo reduces compared with pre-Komodo 13 versions.

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 72 in Komodo 13.02. Note in MCTS mode, King Safety is internally set to an optimized value.

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.

Minimal Reporting

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

This feature allows you to reduce the data Komodo outputs for the first X ply of a search. The default value of 0 does not suppress any program output. Value of 1 or more will suppress outputting the current move Komodo is searching. Higher numbers will suppress more output. 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 value is 140. Values under 140 reduce the dynamic evaluation, while values above 140 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 400, single-digit values will cause bizarre play. A value around 80 will in general produce more realistic evaluations than the default 140, although it will weaken play by 20 to 30 Elo points. The maximum Dynamism value was raised at the request of a Komodo user for version 11.01 and newer. Higher values seem to help in problem sets but not in practical play. Note in MCTS mode, Dynamism is internally set to an optimized value.

Progress Threshold

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

Progress Threshold allows you to set the number of half moves played with no capture or pawn advance (per the 50 move rule) where Komodo starts pulling the evaluation score towards zero. We used 85 until mid-2016, then reduced it to 30 for later versions, which probably cost one or two elo but made Komodo a better analysis tool and shortens long clearly drawn endgames. The lower this value the sooner Komodo will start to see that no progress is being made and encourage it to take another line.

Variety

-------

Variety lets you have Komodo play different lines from its default. A value of zero turns off Variety. With the setting at zero, Komodo will always play the best move it can find. A number from 1-20 allows Komodo to find different moves in some positions. The higher the number, the greater the variety of moves will be. Higher values should lower elo, although we could not detect any elo loss (tiny gain actually) after many thousands of ultra-fast games with a setting of 5 or 10, and less than one elo loss with the maximum setting of 20, with a three elo error margin in each case. Perhaps it was a bit lucky; but it seems that the weakening is not more than one elo per five points set, probably less. Note that when still in Opening Book (described below), the book determines what moves will be played.

Note that running Komodo on more than one thread automatically produces variety, even at the same depth, but the Variety option works even on one thread, and should increase variety on multi-threads.

Skill

-----

You can use Skill to make Komodo weaker, to better match your playing strength. The default setting of 20 makes Komodo run at full strength. When Skill is set below 20, Komodo limits its search depth and modifies its evaluation for weaker play. Komodo should move almost instantly on all levels below 20, and the strength of its play should be almost independent of hardware (except at level 20). The lower the Skill setting, the weaker Komodo becomes. Komodo will drop about 150 elo for each point drop in Skill below 19. Our intention is that for quick games even a virtual beginner (say Elo 200) should be fairly matched with level 0, while the World Champion should have a tough time with level 19 (est. 2900), but there has not yet been enough testing to say how realistic these numbers are. If the human is treating the games like serious tournament games (say 2 hours long) then the corresponding elo values would be a few hundred lower. Skill also limits Komodo’s use of the opening book. Levels 0, 1 and 2 will not use the opening book. Level 3 will only use the book for one move. Each level above this will use one more move for each side of the opening book. Note that this refers only to “own book”, so any outside opening book should be turned off for this book depth feature to work properly. Also note that “Threads” are assumed to be set to 1 (for all levels below 20). If you set Threads for a higher value, it will play stronger than its intended level by something like 20 elo for two threads, 40 elo for four, 60 elo for 8, and 80 elo for 16 threads, although the precise amount depends on the level in question. So if you have a quad core machine with 8 threads, and you find that (for example) level 10 is too easy for you but level 11 is too difficult, you could try level 10 with Threads set to 4 or even 7 or 8 to get an intermediate level. Note that “skill” does not work properly with MCTS.

Monte Carlo Tree Search and MCTS Explore

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

Komodo 12 and 13 adds a form of Monte Carlo Tree Search (MCTS). This is similar to what is used in programs like AlphaZero Chess. MCTS is different from traditional chess engine search techniques in that the search is guided by win probabilities instead of a traditional alpha-beta search and evaluation. The result is a more human-like way of playing, since humans, like MCTS, are normally concerned with what move will give them the best chance to win (or draw if in inferior position) against an imperfect opponent, not what move is best against perfect play, which is what alpha-beta search tries to do. MCTS often gives very different move choices than normal Komodo. The Komodo system is a hybrid. You turn on MCTS by checking “Use MCTS” in the UCI parameters of your chess GUI.

Monte Carlo Tree search requires extra memory, so might not be suitable for machines with very little memory. Once the Monte Carlo move tree is full, the search will simply complete, even if the allocated time has not been reached. This will happen when the number of MC nodes exceeds the current limit (a little above 8 million nodes with default settings). On a single core this is enough to search for over 2 hours, less when more cores are used. If you wish to analyze for long periods of time on a many core machine, you can increase the size of the Monte Carlo tree in memory by raising the MCTS Hash value. A rough estimate on current (2019) processors is each core can expand about 30 Monte Carlo nodes a second, but can vary a lot wh en the tree has many draws or mates and climb higher to perhaps 100. Each node is 40 bytes. So it you wanted to analyze with say 8 cores for 5 hours, you should set MCTS Hash to 100 x 40 x 8 x 3600 x 5 (secs in an hour)/ 1000000 or about 576 megs. The sum of MCTS Hash plus regular Hash should not exceed the maximum value you have found to work well for regular Hash in normal mode.

In MCTS, search is controlled by the rate of exploration (searching a wider tree and adding more variations) and exploitation (extending existing lines to see deeper). You can adjust this with the MCTS Explore parameter which has a default of 40.

Note that MCTS is not like a traditional search where depth is increasing and reported as a new iteration is completed. Instead, best move choices are update once every 2 seconds, so it can appear some depths are skipped over. Since most GUIs want to see a depth output, Komodo estimates the depth based on MCTS nodes searched.

One nice feature about MCTS is that Multi-PV is essentially “free”. With use_MCTS off, when Komodo performs a non-MCTS search, each additional MultiPV move takes additional time. But in MCTS mode, the move tree is saved as winning probabilities for all root moves. One note: since MCTS does not increment depth ply by ply, depth commands are not so useful. The displayed depth is an estimate based on the current tree number of nodes. MCTS should be used with timed play and not fixed depth. Also note MCTS takes some time to build a useful tree, and will not play well (for a 3300 rated engine) at time limits averaging less than two seconds per move.

In earlier versions MCTS mode did not use more than 12 or 15 threads, so if you set a higher number it will just use 12. This limit has now been raised all the way to 128.

Note that the eval is displayed in the traditional centipawn format, but it is really a win probability converted to a centipawn score. This is done so that GUIs which expect a traditional score will work properly.

Note that many of the UCI options, such as Reduction, S electivi ty, King Safety, and Dynamism, won’t do anything in MCTS mode, because MCTS search doesn’t use the values you see there. The “Ponder” option does work properly.

In MCTS search, once a shallow root search shows a score > 7.00 pawns or less than -7.00 pawns, Komodo 12.3 and earlier will switch to non-MCTS search to “mop up” the rest of the game, since such high score are almost certainly lost or won. This was removed in Komodo 13.02. Note MCTS mode an often take longer in endgames to mate. You can always switch off Use MCTS if you want it to find a faster mate.

Note to testers: We recommend that the MCTS option not be tested at any time limit faster than one minute plus 0.6 seconds or the equivalent (earlier versions required at least twice this). MCTS mode needs some time to produce a tree with enough depth to play well. We encourage tests on four or more threads, as we believe Komodo MCTS makes good use of multiple threads.

NUMA Offset and NUMA Support (Windows only)

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

Komodo has NUMA support for Windows. Note, the Linux and OSX versions automatically support NUMA without the need for any special settings. Most users will find the default setting for WIndows just fine, but for power users and users with big machines, here goes:

In Windows, if 8 or fewer Threads are specified, Komodo lets the operating system set the Threads it uses for optimal placement.

Since the operating system knows about all system processes, it has more information to decide on Thread placement so no special NUMA placement is done with 8 or less threads. With more than 8 Threads, Komodo will use the setting of NUMA Offset to control which NUMA nodes it first uses. A NUMA Offset of -1 tells Komodo to let the operating system decide which NUMA nodes Komodo runs on, but this limits Komodo to 64 Threads. Note if you want to use more than 64 Threads, you should not set NUMA Offset to -1. A NUMA Offset = 0 will make Komodo start using Threads first on NUMA Node 0, then progress to NUMA Node 1 and so on until it reaches the number of Threads specified. A NUMA Offset of 1 will make Komodo start on NUMA Node 1 and progress from there.

Why would you need NUMA Offset? It lets you control where Komodo is run. For example you could have one copy of Komodo run on NUMA node 0, and another run on NUMA Node 1 without each program robbing resources from each other. This is especially useful if you want the engines to Ponder without robbing resources from the other engine.

We recommend the default NUMA Offset of 0 unless you have some special circumstances.

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 always 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 for more variety. Komodo 9.4 and up better handle opening books modified using the free scid program (https://sourceforge.net/projects/scid/files/). Note many GUIs also have the ability to have opening books. If they are in use, they have priority over Komodo’s book.

You can limit how many book moves Komodo uses by changing the Book Moves parameter. The numbers are in “half moves”. So if you want Komodo to only use its opening book for 3 moves for white and three for black, set this number to 6. Note that Skill levels below 20 will limit the number of opening book moves used. See the Skill section above for more details.

## 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, now including 7 man, for his work on the Mac and Android versions, for his help with copy protection, and for improvements to MP search. 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. He has also built us a new tester recently which is a substantial improvement. Also another big thanks to all the people who have offered to test and run matches with Komodo. Thanks to Piotr Kasinski for use of the Syzygy7.pdf. And thanks to Dmitry Pervov for his work fixing large Thread MCTS crashes and making Komodo faster.

Finally, special thanks to our partner chess.com for making machines available to us for testing, for help with improved compiling, for the new website design, and for the handicap matches with Grandmasters.

Komodo Chess and this readme file are (C) 2019 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.