Houdini Chess Engine
Cruxis Home > Houdini Chess Engine

Welcome to the Houdini Chess Engine home page. Houdini is a state-of-the-art chess engine for Windows that competes with the best commercial and free software. The current version is Houdini 1.03a (release date July 17, 2010).

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. At the same time Houdini will deny its opponents the same escape routes when it has the better position.

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.

As of July 25, 2010, Houdini 1.03a is ranked #1 on the leading IPON computer chess rating list, ahead of Rybka 4 and Stockfish 1.8.
 

How to use the Houdini engine

The program has no graphical interface but can be used with any UCI-compatible chess graphical user interface (GUI) like the free Arena and Winboard chess interfaces or the commercial Shredder chess interface.

If you haven't already, first download the chess GUI of your choice.
Then download the Houdini version that suits your environment (32 or 64-bit, number of cores), copy it to a local directory on your computer, and install it in the chess GUI.

Downloads

The current version Houdini 1.03a is available for Windows 32-bit and 64-bit, for 1 to 8 cores. Each executable is optimized for the specific number of cores, it's recommended that you install the version that matches your hardware and platform.
32 bit version
Can be used on any not too ancient Windows version. From release 1.02 on these compiles no longer depend on SSE2 instructions and will also run on older processors that don't support the SSE2 instruction set.
64 bit version
Recommended for 64-bit Windows, the speed increase is about 30% compared to the 32-bit version.
On 64-bit hardware that supports SSE4.2 (e.g. Intel Core i5 and i7) you can use the "POPCNT" version that runs slightly faster than the standard version.

Version history

  • Houdini 1.03a (20100717): Bug fix for Multi-PV.
  • Houdini 1.03 (20100715): Multi-PV, searchmove and large page support. Improved evaluation function.
  • Houdini 1.02 (20100618): SMP and hash collision bug fixes. Work-around for Shredder GUI.
  • Houdini 1.01 (20100601): Bug fixes. Improved search algorithm.
  • Houdini 1.00 (20100515): First release.

UCI Options

Currently the following UCI options are available:
  • Hash: Amount of hash table memory used by the program in MB. Default 128, min 4, max 1024/16384 (32/64-bit).
  • Threads: Maximum number of cores used by the analysis. Default is version-dependent, min 1, max 8.
  • Split_Depth: Minimum depth at which work will be split between cores, see below. Default 10, min 8, max 99.
  • Ponder: [game play only] Have the engine think during its opponent's time. True (1) or false (0).
  • Analysis_Contempt: [position analysis only] Make Houdini try to avoid draws. True (1) or false (0).
  • MultiPV: [position analysis only] Number of principal variations shown. Default 1, min 1, max 16.
  • Large_Pages: Activate large memory pages, see below. True (1) or false (0).

Houdini does not (yet) use Endgame Table Bases, but has built-in knowledge of a number of basic endgames including KQ v KP, KB v KBP which makes it a great performer in the endgame as well.

Tuning the Split_Depth parameter on 4-core and 8-core hardware

The 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 if you're serious about getting the best performance out of your hardware.
The default value 10 is tuned for a Core i5-750 @2.66 GHz, 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.

Using large memory pages in 64-bit Windows Vista/7

In 64-bit Windows Vista/7 Houdini can benefit from so-called large memory pages. Depending on the hash table size the speed improvement may be between 5% and 20%.
To enable this feature, you need to modify the Group Policy for your account on your computer:
  1. Run: gpedit.msc (or search for "Group Policy")
  2. Under "Computer Configuration", "Windows Settings", "Security Settings", "Local Policies" click on "User Rights Assignment"
  3. In the right pane double-click the option "Lock Pages in Memory"
  4. Click on "Add User or Group" and add your account or "Everyone"
  5. You may have to logoff or reboot for the change to take effect
Run your chess GUI with administrative rights ("Run as Administrator"), and check the "Large_Pages" UCI option for Houdini.
Note: If memory is fragmented the Large Page allocation may fail and Houdini will fall back to standard memory page usage.

Known issues in current release 1.03a

  • There is a known time management problem at ultra-short time controls with increments (for example 5"+0.05" time control). The problem has a significant impact on the playing strength when the remaining time available for a move is less than a second. The issue does not occur at ultra-short repeating time controls (e.g. 5"/40).

Acknowledgements

Without many ideas from the excellent open source chess engines Ippolit/Robbolito, Stockfish and Crafty (in that order), Houdini would not nearly be as strong as it is now.