Welcome to the Houdini Chess Engine home page. Houdini is a state-of-the-art chess engine for Windows, the current version Houdini 1.5a is widely considered to be the strongest chess engine on the planet.
Houdini is free for non-commercial use. It can be downloaded, installed and freely used for playing chess games and analysis of chess positions without commercial purpose.
The name Houdini was chosen because of the engine's positionaly style, its tenacity in difficult positions and its ability to defend stubbornly and escape with a draw – sometimes by the narrowest of margins. On the other hand Houdini will often use razor-sharp tactics to deny its opponents escape routes when it has the better position.
As of December 17, 2010, Houdini 1.5 was ranked #1 on the leading IPON computer chess rating list, 50 Elo ahead of Rybka 4 and 100 Elo ahead of Stockfish 1.9 and Critter 0.9.
Houdini is appreciated by many players and even top Grand Masters. In a recent interview, when asked the question "If you had to pick one player to represent earth in a chess game vs. aliens, which active player would it be? You can pick different active players for the white and black side, if you feel it necessary.", super GM Peter Svidler had a simple reply: "Houdini".
The package contains Houdini_15a_w32.exe for 32-bit Windows and Houdini_15a_x64.exe for 64-bit Windows.
Each executable contains code for optimal execution from single-core up to 8 cores. On a 64-bit platform the 64-bit version is about 30% faster than the 32-bit version. If your hardware supports SSE4.2 the program will use the POPCNT instruction for another slight performance gain.
How to use the Houdini engineThe program has no graphical interface but can be used with any UCI-compatible chess graphical user interface (GUI) including the free Arena and Winboard chess interfaces or the commercial Shredder chess interface.
If you haven't already, first download and install the chess GUI of your choice. Then copy the Houdini executable for your environment (32 or 64-bit) to a local directory on your computer, and install it in the chess GUI.
What's new in Houdini 1.5
Gaviota End Game Table Base (EGTB) supportHoudini integrates the Gaviota EGTB probing code © Miguel A. Ballicora. All information about Gaviota EGTB files can be found at the Gaviota web site.
Even without EGTB Houdini is a great performer in the end game because of its extensive built-in knowledge of basic endings (e.g. KQ v KP and KB v KBP). Knowing that the EGTB access is very slow compared to a native evaluation of the position, a generic use of EGTB might actually decrease the playing strength. To cope with this situation Houdini will vary the frequency at which the EGTB are probed depending on the end game that is occurring. In difficult endings in which the table bases are very useful (e.g. KQP v KQ or KRP v KR) Houdini will probe the EGTB files much earlier than in endings that are easy to evaluate.
The location of the Gaviota EGTB files is specified in the GaviotaTbPath option. Houdini will scan the folder for the "kqkr.gtb.cpX" file and accordingly decide which compression level to use.
The depth of the earliest probe of an EGTB can be configured with the Hard_Probe_Depth and Soft_Probe_Depth options. In a multi-core environment you may want to increase these values to reduce the likelihood of several cores probing the EGTB simultaneously.
Houdini will always probe the EGTB for the initial position of the search. If an EGTB mate position is identified, the full main line will be shown immediately. If the initial position is an EGTB draw but Houdini has a material advantage, Houdini will still play for a win - the opponent might be human or an engine without end game table bases.
UCI OptionsThe following UCI options are available:
Setting the correct number of threads when hyper-threading is availableOn Intel processors with so-called hyper-threading, it is recommended to set the number of threads not higher than the number of physical cores.
The architecture of Houdini is not very well suited for hyper-threading, use of more threads than physical cores will usually degrade the performance of the engine.
Tuning the Split_Depth parameter on multi-core hardwareThe Split_Depth parameter defines the minimum depth at which work will be split between cores. This parameter can impact the speed of the engine (nodes per second) and should be fine-tuned to get the best performance out of your hardware.
The default value 10 is tuned for quad Core i5/i7 systems, but on other systems it may be advantageous to increase this to 12 or 13. To select the best Split_Depth for your system you should analyze some positions for a fixed duration (e.g. 30 seconds) and measure the average nodes/second. Do this for all values of Split_Depth between 10 and 14, and keep the value that produces the highest average node speed.
Large Memory PagesHoudini will use so-called large memory pages if they are provided by the operating system. Depending on the hash table size the speed improvement may be between 5% and 10%.
To enable this feature in Windows, you need to modify the Group Policy for your account:
Very often large pages will only be available shortly after booting Windows. After a while the Windows memory becomes too fragmented for large page allocation, and Houdini will fall back to standard memory page usage.
Version historyHoudini 1.5
AcknowledgementsWithout many ideas from the excellent open source chess engines Ippolit/Robbolito, Stockfish and Crafty, Houdini would not nearly be as strong as it is now.
The Gaviota EGTB probing code used in Houdini is © Miguel A. Ballicora.