Houdini 3 Chess Engine - User's Guide PDF
Houdini 3 Chess Engine - User's Guide PDF
User's Guide
Houdini 3
The Leading Chess Engine
by Robert Houdart
All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic,
electronic, or mechanical, including photocopying, recording, taping, or information storage and
retrieval systems - without the written permission of the publisher.
Products that are referred to in this document may be either trademarks and/or registered trademarks
of the respective owners. The publisher and the author make no claim to these trademarks.
While every precaution has been taken in the preparation of this document, the publisher and the
author assume no responsibility for errors or omissions, or for damages resulting from the use of
information contained in this document or from the use of programs and source code that may
accompany it. In no event shall the publisher and the author be liable for any loss of profit or any other
commercial damage caused or alleged to have been caused directly or indirectly by this document.
Printed: October 2012
Table of Contents
6
Part I Introduction
1 Version
...................................................................................................................................
History
6
10
1 Installing
...................................................................................................................................
Houdini
10
2 Running
...................................................................................................................................
Houdini in a graphical chess environment
11
3 Installation
...................................................................................................................................
with Arena 3.0
11
4 Installation
...................................................................................................................................
with Fritz/ChessBase GUI
15
5 Installation
...................................................................................................................................
on Linux using Wine/Wine64
17
6 Off-line
...................................................................................................................................
Activation
18
7 Some
...................................................................................................................................
Frequently Asked Questions
19
23
1 Hash
...................................................................................................................................
Memory
24
2 Persistent
...................................................................................................................................
Hash
24
3 Position
...................................................................................................................................
Learning
25
4 Cores
...................................................................................................................................
and Threads Management
26
5 Game
...................................................................................................................................
Play
28
6 End
...................................................................................................................................
Game Table Bases
32
7 NUMA
...................................................................................................................................
support (Houdini Pro)
33
36
39
Index
2012 Cruxis
Part
Introduction
Houdini is a state-of-the-art chess engine for Windows combining outstanding
positional evaluation with the most sophisticated search algorithm. The name Houdini
was chosen because of the engine's positional 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.
Houdini is available in a Standard version and Professional version for power users with
high-end hardware.
Houdini is written for Windows and will run on any not too ancient Windows version.
On Linux you can run Houdini using Wine without any significant performance loss.
Since December 2010 Houdini has been leading all the major Computer Chess rating
lists and is widely considered to be the strongest chess engine on the planet. From
numerous interviews it appears that many top Grand Masters including the current
chess World Champion Viswanathan Anand use and appreciate Houdini.
For recent information and updates please consult the Houdini home page at
http://www.cruxis.com/chess/houdini.htm
Feel free to contact the Houdini team with suggestions, problem reports or questions
at the following e-mail address:
[email protected]
1.1
Version History
Houdini 3
Released October 15, 2012.
Houdini 3 contains many evaluation and search improvements in all phases of the game
and is about 50 Elo stronger than its predecessor Houdini 2 (which at the time of
writing was still unmatched by any other engine). The opening improvements relate
mostly to piece mobility and space management and are most convincingly
demonstrated by the progress in Fischer Random Chess for which Houdini 3 has
become about 75 Elo stronger. In the middle game Houdini 3 has significant
enhancements for recognizing pieces with limited mobility and in king-side safety.
Houdini 3 will seek deeper in end games and solve more positions than before.
In the new Tactical Mode Houdini 3 will prefer tactical instead of positional solutions.
In tactical test suites the Tactical Mode will find more solutions and provide
significantly faster solution times, often by a factor of 3 to 10.
The Accelerated Principal Variation Search or Smart Fail-High is especially useful in
very deep analysis when a different move becomes best at very high search depth.
Houdini 3 will apply an automatic depth reduction that often speeds up finding the
Principal Variation by a factor of 5 to 10.
2012 Cruxis
Introduction
Besides Nalimov and Gaviota End Game Table Bases, Houdini 3 now also supports
Scorpio bitbases. These bitbases are loaded in memory when the program starts
(requiring about 300 MB of memory) and are then readily available to the engine.
Hash usage has been optimized, improving back-tracking analysis. Houdini 3 Pro will
now support hash tables up to 256 GB.
The engine evaluations have been carefully recalibrated so that +1.00 pawn
advantage gives a 80% chance of winning the game against an equal opponent at blitz
time control. At +2.00 the engine will win 95% of the time, and at +3.00 about 99% of
the time. If the advantage is +0.50, expect to win nearly 50% of the time.
Fun fact: Over 10 million chess games were played for the development and tuning of
Houdini 3!
Houdini 2.0c
Released November 20, 2011.
Corrections
Nalimov EGTB probing would not recognize KvK end game.
Nalimov EGTB: Houdini would exit when a corrupt table base file was encountered.
On some Windows systems the internal timer would overflow after approx. 30
minutes.
Improvements and New Features
New MultiPV_cp option to limit multi-PV analysis to moves within a range of the best
move.
New FiftyMoveDistance option to make the 50-move rule kick in earlier.
New UCI_Elo and UCI_LimitStrength options as UCI standard-compliant alternative to
Strength option.
Houdini now exits when it detects that the communication with the GUI is broken.
Houdini 2.0b
Released October 7, 2011.
Corrections
Repetition in games would have Houdini evaluate the repeating position as 0.00.
When specifying a fixed depth search, Houdini would wait for a "stop" command
when analysis finished early.
Omitting the "uci" command at start-up would produce erratic results in the first
analysis.
Improvements and New Features
Nalimov EGTB support.
2012 Cruxis
Houdini 2.0
Released September 1, 2011.
Improved Analysis support: Save Hash to File, Load Hash from File, Never Clear
Hash
The complete hash table can be saved to a disk file and reloaded later for continuing
the analysis.
Houdini 2 makes better use of the data in the hash table to restart instantly the
analysis at the point where it was previously interrupted.
By saving the hash table in a disk file you can interrupt the analysis anytime. At a
later date you can reload the hash table file in memory to continue the analysis as if
no interruption had happened.
The new "Never Clear Hash" option will keep the hash data in memory even when the
position changes or when starting a new game.
Position Learning
The "Position Learning" mode will automatically save analysis results in a learning
database that will be reused in future analysis. This is a more convenient, but less
powerful method of using previous analysis results than the manual Save Hash/Load
Hash operations of the previous point.
Strength Limit feature
Houdini 2 can limit its skill level from 0 (beginner) to 100 (full strength).
The strength is limited through a combination of techniques: limiting the number of
positions searched, purposely picking a non-optimal move, and ignoring table bases.
Up to what skill level can you beat Houdini?
Chess960 (Fischer Random Chess) Support
Houdini 2 supports Chess960 a.k.a. Fischer Random Chess games.
Mate Search
To speed up solving deep mates, you can fix a limit on the search depth during the
mate search.
Houdini Pro version for high-end users with powerful hardware
For advanced servers with many cores on multiple sockets (usually with so-called
NUMA architecture), a special Houdini Pro version is available. It significantly improves
the scaling of Houdini up to 32 cores and makes use of up to 32 GB of hash memory.
Improved strength
Improved evaluation and search make Houdini 2 Standard about 25 Elo stronger than
its predecessor Houdini 1.5a. On high-end hardware Houdini 2 Pro with its additional
NUMA-related speed improvements is about 40 Elo stronger than Houdini 1.5ab-16.
2012 Cruxis
Part
II
10
2.1
Installing Houdini
Houdini is written for Windows and will run on any not too ancient Windows version.
On Linux you can run Houdini using Wine without any significant performance loss.
You should have received the download link for the Houdini Setup, together with your
Customer Code and Serial Number.
Download and run the Houdini Setup package. During installation you will be asked for
the Customer Code and Serial Number. The Houdini Setup will perform an internet
Activation. Without activation Houdini will run at reduced strength.
The Houdini Setup will install the Houdini version that is appropriate for your 32-bit or
64-bit system. The Houdini engine contains optimized code for single-core up to 6
cores (Houdini Standard version) or up to 32 cores (Houdini Pro version). The 64-bit
version is about 30% faster than the 32-bit version. On modern hardware the program
will use the POPCNT instruction for another slight performance gain.
Below a table summarizing the single-core performance difference on two modern
processors:
Intel Core i5-750 @ 2.67 GHz
Version
Node Speed
Relative Speed
Houdini 3 32-bit
1620 kN/s
1.00
1720 kN/s
1.06
Houdini 3 64-bit
2150 kN/s
1.33
2300 kN/s
1.42
Node Speed
Relative Speed
Houdini 3 32-bit
925 kN/s
1.00
965 kN/s
1.04
Houdini 3 64-bit
1135 kN/s
1.23
1260 kN/s
1.36
2012 Cruxis
2.2
11
2.3
After approving the license, you'll be asked for your Customer Code and Serial Number.
Simply copy/paste the information you received by e-mail.
2012 Cruxis
12
the
2012 Cruxis
13
2012 Cruxis
14
By default the Strength option is at 100 (full strength), you can try to adapt this
value so that you get competitive games.
What is the highest strength level that you can consistently beat?
P.S. Don't forget to switch the Strength back to 100 when analyzing positions.
2012 Cruxis
2.4
15
After approving the license, you'll be asked for your Customer Code and Serial Number.
Simply copy/paste the information you received by e-mail.
2012 Cruxis
16
4) Run the Fritz/ChessBase GUI, select the "Engines" tab and click the "Create UCI
Engine" button.
2012 Cruxis
17
2.5
Ubuntu 12.04
Success. I installed the 64-bit wine and then made another mistake and installed
Houdini-3 again and once again got the 32-bit version. My mistake? The .wine
directory on my system was already created under wine 32-bit. So ... removing that
directory and THEN installing Houdini-3 results in a working 64-bit Houdini installation.
Arena 3.0 installed under 64-bit wine (running on Ubuntu 12.04 64-bit) is able to make
use of the 64-bit Houdini 3 .exe file just fine. For those that like to run engine-vsengine matches on their Linux computers, this will be good news. Until today I had not
figured out how to install 64-bit wine and thus Arena was always limited to running 32bit engines for me. No longer ...
The key steps for me in getting this to run on Ubuntu 12.04 were these:
1. To install wine, run the "Ubuntu Software Center" application.
2. In the upper right search bar, enter "wine" (minus the quotes of course)
3. Here was the real revelation for me -- click on the link shown as "show 25 technical
items" at the bottom of the Ubuntu Software Center window. This reveals
Microsoft Windows Compatibility Layer (64-bit support). Click on that to install 64-bit
wine. If you do not do this and just click on the "normal" wine, you get a 32-bit wine
installed despite the fact that you are running Ubuntu 12.04 64-bit as an OS!
4. If you have a .wine directory already in your home directory, rename it to
something else; I chose to rename it to: .wine-32bit
. This is crucial also since
wine "knows" this is a 32-bit wine and the Houdini 3 installation step about to come
will install 32-bit Houdini if you do not take this step.
5. Open a terminal window and execute: wine Houdini-3-Setup-b833c5.exe . This will
create a new .wine directory in your home directory and this will be suitable for using
64-bit Windows applications.
Follow the Houdini 3 installation prompts and it will install a 64-bit Houdini-3 engine for
you to work with. I use SCID to run Houdini 3 but Arena 3.0 works very well also.
Ubuntu 11.10
I found this script which did a parallel 32-bit + 64-bit install on Ubuntu 11.10, which
got it working for me:
http://www.jesseo.com/chess/64-bit-wine-ubuntu.sh
2012 Cruxis
18
2.6
Off-line Activation
Houdini 3 requires a product activation via internet.
If you want to install Houdini 3 on a computer without internet access, you can use
the Off-line Activation module.
You will require any other computer with internet access, and a USB memory stick to
transport files to and from the off-line computer. The process boils down to clicking 3
times on a button on the two computers and shouldn't take more than a couple of
minutes. Note that NOTHING will be installed or modified on the computer with the
internet access, it is only used to perform the communication with the activation
server. The activation data is saved on the USB stick in two binary data files.
Below a step-by-step manual to perform the installation of Houdini 3 on a computer
without internet access.
2012 Cruxis
19
3. Run the Off-line Activation Module on the computer with internet access
Run the Off-line Activation Module from the USB memory stick.
Click on the "Get Activation Code" button.
The Activation Server will be contacted, and a "Activation.dat" file will be written to
the USB memory stick.
2.7
2012 Cruxis
20
Q: T he F rit z/Che ssBa se GUI oft e n se e m s t o fre e ze w he n I use Houdini. F urt he rm ore
t he F rit z/Che ssBa se GUI doe sn't m e m orize m y Houdini se t t ings, I se le c t a n opt ion but
ne xt t im e I use t he e ngine t he v a lue ha s be e n re v e rt e d. Wha t is ha ppe ning?
Youre not the only one struggling with the sometimes confusing Fritz/ChessBase
interface.
First note that chess engines are very CPU-intensive - when configured to use all the
cores of the computer they may prevent the graphical environment from interacting
normally with the user. To avoid this, it is recommended to run Houdini at a lower
process priority in Windows.
We can suggest the following.
1. In the Create UCI Engine dialog, pick the Houdini executable and check the Priority
Below normal box. This should make a big difference with respect to the
ChessBase freezes.
2. The engine default properties are stored in a .uci file stored in your local Application
Data folder. Its a plain text file that you can easily modify with Notepad. Open a
Windows Explorer window, type %appdata% in the address bar and press Enter. In
the folder that appears, descend into the ChessBase\Engines.UCI folder in which you
will find the .uci files of all the installed engines. You can simply add options to the .
uci file with Notepad, heres an example file:
[ENGINE]
Name=Houdini 3 x64
Author=Robert Houdart
Filename=C:\Program Files\Houdini 3\Houdini_3_x64.exe
Priority=below normal
[OPTIONS]
Threads=3
GaviotaTbPath=C:\egtb\gaviota
2012 Cruxis
21
Q: I use t he Che ssBa se De e p Posit ion Ana ly sis fe a t ure . I not ic e t ha t Houdini's a na ly sis
w e nt dow n risky line s w it hout t a king not e of dra w ing/e qua lizing c ha nc e s a lm ost e v e ry
m ov e . Is t ha t t o be e xpe c t e d?
If you want Houdini to favor drawing lines, you should consider putting Houdini's
"Contempt" value to 0.
ChessBase runs its deep position analysis by simulating game conditions. This means
that Houdini thinks that it's in a game instead of an analysis, and activates the
contempt (default value 1).
To avoid this, it's best to put the Contempt value to 0 when using the deep position
analysis in ChessBase.
2012 Cruxis
Part
III
Houdini Configuration
23
Houdini Configuration
Many engine options can be modified via the configuration window shown by the chess
GUI.
Below a screen shot of the configuration window in Arena 3.0.
Note that some GUIs will hide options that are handled elsewhere in its interface. For
example, in the second screen shot above the options "Ponder", "MultiPV",
"NalimovPath", "NalimovCache" and "UCI_Chess960" are missing from the configuration
window.
2012 Cruxis
24
3.1
Hash Memory
The so-called "Hash Memory" or "Transposition Table" is used by Houdini to store its
analysis results.
Hash
Amount of hash table memory used by Houdini, in MB.
Default 128, min 4, max 1024 (32-bit) or 4096 (64-bit Standard) or 262144 (64-bit
Pro).
The value is rounded down to a power of 2 (4, 8, 16, 32, 64, 128, 256, 512, 1024,
2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144 MB).
For infinite analysis or long time control matches you should use the largest hash that
fits in the physical memory of your system. For example, on a system with 4 GB of
memory you can use up to 2048 MB hash size.
For shorter games, for example 3 to 5 minute games, its better to use 256 MB or 512
MB as this will provide the best performance. For 16 min games 1024 or 2048 MB hash
size should be fine.
In the FAQ about Hash Size you'll find a formula to compute the optimal hash size for
your hardware and time control.
3.2
Persistent Hash
Persistent Hash means that the in-memory hash table can be saved to a disk file and
reloaded later for continuing the analysis.
The goal is to be able to interrupt a long position analysis anytime and save the hash
table to a disk file. At a later date you can reload the hash file in memory and continue
the analysis at the point where it was interrupted.
Correspondence chess players could profit from this feature by keeping one hash disk
file per ongoing chess game. For that purpose the following procedure can be used.
To save a Hash file to disk:
End the analysis
Go to the options window, enter the name of the Hash File (e.g. C:\Chess\Game1.
dat)
Press the Save Hash to File button, and OK in the options window.
2012 Cruxis
Houdini Configuration
25
Hash File
File name for saving or loading the hash file with the Save H as h to File or Load H as h
from File buttons.
A full file name is required, for example C:\Chess\Hash001.dat.
By default Houdini will use the hash.dat file in the "My Documents" folder of the
current user.
3.3
Position Learning
With Position Learning Houdini will remember advantageous principal variations it has
analyzed by storing them in a learning disk file, for reuse in later games or analysis.
The feature is completely transparent to the user, once Learning is enabled the data
will be saved and loaded automatically.
The Position Learning is available in analysis and match play. But remember that it will
only kick in for certain positions in which there is something to learn, i.e. when the
score is significantly above the static evaluation of the position. In quiet, equal
positions there's usually not much to learn.
Position Learning works best for positions where a good move exists that raises the
score significantly above the statical evaluation. Learning is less useful and sometimes
counterproductive for positions where many more or less equivalent moves exist and
the goal is to avoid bad moves. To improve the efficiency of the learning the feature
only kicks in when a certain positive scoring threshold is exceeded. By default this
Learning Thres hold is put at 10 centi-pawn (0.1 pawn).
2012 Cruxis
26
Although the learning file grows very slowly, make sure not to allow the file to grow
too large as the automatic loading may slow down the engine at the start of the
analysis.
The impact of Position Learning can be illustrated as follows.
When running the Eigenmann Ending Test Suite with 20 seconds/move on a single-core
laptop producing about 1,000 kN/s, Houdini finds 77 out of 100 solutions, the total
solution time is 12:06. The test run produces a Learning File of about 27 kB.
Running the Test Suite a second time demonstrates the profit of the Learning File.
Houdini now finds 80 solutions and the total solution time drops to 9:42.
Learning (checkbox)
When Learning is enabled the learning file will automatically be loaded at the start of
the analysis, and further analysis will be appended to the file.
When Learning is enabled, automatically the Never Clear Hash option will be
activated as clearing the hash would be counterproductive for the learning.
Learning File
File name for saving the learning data.
A full file name is required, for example C:\Chess\Learn001.dat.
By default Houdini will use the Learn.dat file in the "My Documents" folder of the
current user.
The learning file will be updated at the start of a new game or when you close the
engine or GUI.
Learning Threshold
Min 0, Max 200, Default 10.
The Learning Threshold is the minimum positive score of a principal variation that is
saved.
When Learning Thres hold is larger the learning file will grow slower, as fewer moves
will satisfy the condition..
3.4
2012 Cruxis
Houdini Configuration
27
Split Depth
When using multiple threads, the Split Depth parameter defines the minimum depth at
which work will be split between cores.
Default 10, min 8, max 99.
This parameter can impact the speed of the engine (nodes per second) and can be
fine-tuned to get the best performance out of your hardware. The default value 10 is
tuned for Intel quad-core i5/i7 systems, but on other systems it may be advantageous
to increase this to 12 or 14.
To see which Split Depth value is best for your system you can use Houdini's
autotune command. Run Houdini in a command window (simply by double-clicking on
the executable) and type autotune followed by Enter. This command will analyze 4
positions for 30 seconds and measure the average nodes/second for Split Depth values
between 10 and 18. Use the value that produces the highest average node speed in
your Houdini configuration.
You can set the hash size and number of threads before running the autotune
command:
- to set the hash size to 512 MB, type setoption name hash value 512
(alternatively in Houdini 3, type hash=512)
- to set the number of threads to 3, type setoption name threads value 3
(alternatively in Houdini 3, type threads=3)
Here's an example autotune result on a Core i5-750 using 3 threads and 512 MB of
hash memory:
2012 Cruxis
28
The highest average node speed of 5868 kN/s is obtained with the default Split Depth
10.
3.5
Game Play
Tactical Mode (checkbox)
The Tactical Mode was introduced in Houdini 3.
When Tactical Mode is active, Houdini modifies its search process and uses some
clever tricks to focus on tactical solutions in the root position. In Tactical Mode
Houdini becomes a very skilled tactical problem solver. Below some results for two
popular tactical test suites with Houdini running at 30 seconds per position using 2
threads on a Core i5-750 with 512 MB hash.
1) Arasan 14 Tactical Suite, comprising 197 medium to hard positions
- Houdini 1.5a solves 148 positions, total solution time 34 minutes.
- Houdini 2 solves 155 positions, total solution time 35 minutes.
- Houdini 3 Tactical solves 177 positions, total solution time 22 minutes.
2) Die Tactical Suite, comprising 100 hard positions
- Houdini 1.5a solves 29 positions, total solution time 40 minutes.
2012 Cruxis
Houdini Configuration
29
Strength
Limit strength from 0 (beginner) to 100 (full strength).
Default is 100 (full strength).
The strength reduction is mostly based on a combination of two techniques:
Limiting the number of positions searched - this reduces mostly the tactical strength
of the engine;
Purposely picking a move the engine knows is not optimal - this reduces mostly the
positional strength of the engine.
The combination of the two produces a game with both tactical and strategic
(positional) flaws.
The following table shows the estimated Elo of Houdini 2 at reduced Strength levels. It
is based on the feed-back of several users:
Strength
Strength
Strength
Strength
Strength
0
10
20
30
50
=>
=>
=>
=>
=>
1200
1500
1800
2000
2300
Elo
Elo
Elo
Elo
Elo
This table is very approximate and hasn't been validated for Houdini 3 yet.
What is the highest strength level that you can consistently beat?
UCI_Elo
UCI-protocol compliant version of Strength parameter.
Default 3000, min 1200, max 3000.
Internally the UCI_ Elo value will be converted to a Strength value according to the
table given above.
The UCI_ Elo feature is controlled by the chess GUI, and usually doesn't appear in the
configuration window.
2012 Cruxis
30
UCI_LimitStrength (checkbox)
Activate the strength limit specified in the UCI_ Elo parameter.
This feature is controlled by the chess GUI, and usually doesn't appear in the
configuration window.
MultiPV
Number of principal variations shown.
Default 1, min 1, max 32.
The MultiPV feature is controlled by the chess GUI, and usually doesn't appear in the
configuration window.
MultiPV_cp
Limit the multi-PV analysis to moves within a range of the best move.
Default 0, min 0, max 999.
Values are in centipawn. Because of contempt and evaluation corrections in different
stages of the game, this value is only approximate.
A value of 0 means that this parameter will not be taken into account.
Ponder (checkbox)
Have the engine think during its opponent's time.
The Ponder feature (sometimes called "Permanent Brain") is controlled by the chess
GUI, and usually doesn't appear in the configuration window.
Contempt
Level of contempt to avoid draws in game play.
Default 1, min 0 (none), max 2 (aggressive).
The notion of "contempt" implies that Houdini will try to avoid draws by evaluating its
own position slightly too optimistically. The Contempt level can be chosen between 0
(none) and 2 (aggressive), the default value of 1 should be a good compromise in most
situations.
0 = No Contempt
The evaluations are accurate and identical for both sides. This is recommended for
position analysis in which you analyze alternatively for White and Black. The
starting position evaluates as approx. +0.15.
1 = Default Contempt
Contempt 1 is primarily based on piece value imbalance, Houdini will value its own
pieces higher than the opponent pieces, so will only exchange them if theres a
clear positional advantage in doing so.
This also means that the score is evaluated optimistically for the side to move (at
most 0.15 pawn). For example, the starting position evaluates as approx. +0.30
when analyzing for White and +0.00 when viewed from Black. This is only
recommended for position analysis if you always analyze for the same side.
2 = Aggressive
Contempt 2 adds some king safety imbalance, leading to a more attacking style.
2012 Cruxis
Houdini Configuration
31
The contempt settings are fairly mild and have little impact on the objective strength
of the engine. Its hard to say which will give the best results against a given
opponent, it may depend on the style and strength of the opponent. One could
envisage more pronounced contempt but this would start to degrade the engines
objective strength.
By default the contempt is only activated during game play, not during infinite
analysis. If you enable the Analys is Contempt checkbox, Houdini will also take into
account the contempt for infinite analysis.
FiftyMoveDistance
The number of moves after which the 50-move rule will kick in.
Default 50, min 5, max 50.
This setting defines the number of moves after which the 50-move rule will kick in the default value is 50, i.e. the official 50-moves rule.
Setting this option in the range of 10 to 15 moves can be useful to analyse more
correctly blockade or fortress positions:
- Closed positions in which no progress can be made without some sort of sacrifice
(blockade);
- End games with a material advantage that is insufficient for winning (fortress).
By setting FiftyMoveDis tanc e to 15, you're telling the engine that if it cannot make
any progress in the next 15 moves, the game is a draw. It's a reasonably generic way
to decide whether a material advantage can be converted or not.
Mate Search
Maximum search depth for mate search.
Default 0, min 0, max 99.
If set, this option will usually speed-up a mate search.
If you know that a position is "mate in X", you can use X or a value slightly larger than
X in the Mate Search option. This will prevent Houdini from going too deep in
variations that don't lead to mate in the required number of moves.
2012 Cruxis
32
UCI_Chess960 (checkbox)
Activate Fischer Random Chess a.k.a. Chess960 games.
The Chess960 feature is controlled by the chess GUI, and usually doesn't appear in the
configuration window.
3.6
GaviotaTbPath
Folder containing the Gaviota EGTB files.
GaviotaTbCache
Amount of Gaviota EGTB cache memory in MB.
Default 64, min 4, max 1024.
NalimovPath
Folder containing the Nalimov EGTB files.
NalimovCache
Amount of Nalimov EGTB cache memory in MB.
Default 32, min 4, max 1024.
ScorpioPath
Folder containing the Scorpio bitbase files.
2012 Cruxis
Houdini Configuration
33
ScorpioCache
Amount of Scorpio cache memory in MB.
Default 32, min 4, max 1024.
3.7
Numa (checkbox)
Enable or disable the NUMA-awareness. (Enabled by default)
When NUMA is enabled, Houdini will organize memory and threads to take into account
the NUMA configuration of the hardware. This can significantly enhance the scaling of
the engine beyond 6 cores.
Combined with Large Pages the speed gain can be up to 25% depending on the
number of cores, the motherboard and CPU brand.
See the Houdini Pro topic for some real performance data obtained on a 16-core dual
AMD Opteron-6128 box.
Numa Offset
Default 0, min 0, max 16.
2012 Cruxis
34
2012 Cruxis
Part
IV
36
Gaviota EGTB
For the Gaviota EGTB support you'll need to download the Gaviota EGTB files. At the
time of writing they are available for download at the address http://www.
olympuschess.com/egtb/gaviota. Download all 145 files and save them in a directory
on your hard disk. The total disk space required is about 7 GB. Alternatively you could
skip the download and generate the tables directly on your own computer, please
follow the instructions found at the Gaviota web site.
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.
Nalimov EGTB
For the Nalimov EGTB support you'll need to install the Nalimov EGTB files. At the time
of writing they are available for download at the address ftp://ftp.cis.uab.edu/pub/
hyatt/TB or http://tablebase.sesse.net. Download the files and save them in a
directory on your hard disk. The total disk space required for the 3-4-5-men table
bases is about 7 GB (290 files in total). Alternatively you can order the Nalimov tables
on DVD from several suppliers, this is probably the more efficient way of obtaining the
6-men Nalimov table bases.
The location of the Nalimov EGTB files is specified in the N alimovPath option.
Scorpio Bitbases
For the Scorpio bitbase support (introduced in Houdini 3) you'll need the Scorpio
bitbases. Download the egbb archives with 180 files (230 MB) in 2 parts from http://
www.mediafire.com/?du9q8x6nojd3qh6
and
http://www.mediafire.com/?
5vh54gz9d9cfmh5. The bitbases are loaded in memory at startup of the engine, make
sure the physical memory of the computer can accommodate the 300 MB extra.
The location of the Scorpio bitbases is specified in the Sc orpioPath option.
Probing Frequency
The frequency of the EGTB probing can be configured with the H ard Probe Depth and
Soft Probe Depth options. A "soft probe" will only use the data available in memory,
whereas a "hard probe" can require a relatively slow disk access. Soft probing are
available only with the Gaviota EGTB.
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, and if Contempt is
active, Houdini will still play for a win - the opponent might be human or an engine
without end game table bases.
2012 Cruxis
37
Que st ion: I don't unde rst a nd t he c onc e pt of se t t ing a de pt h for EGT B probing. Why
w ouldn't a ll posit ions t ha t ha v e 3-4-5 pie c e s probe t he t a ble ba se s t o ge t t he
e v a lua t ion?
EGTB probes are extremely slow compared to a normal evaluation by the engine.
Suppose you have a K+Q+P against K+N ending. Even without consulting the table
bases Houdini knows that this ending is easily won for the K+Q+P side. Consulting the
EGTB for this position would reduce Houdini's playing strength, as it could easily have
evaluated 1,000 other positions instead of making the rather useless EGTB probe.
Even the in-memory "soft" Gaviota or Scorpio probes are sometimes relatively slow
compared to a native evaluation of the position - especially when multiple threads are
running. If two threads simultaneously perform a soft probe, the second thread has to
wait for the first to finish its probe.
This is aggravated by the fact that Houdini contains a lot of end game knowledge in
its native evaluation function - a lot more than most other chess engines. For
example, even in a non-obvious ending like KBP v KB with bishops of the same color,
Houdini knows quite well which positions are won and which are drawn. This means
that except for difficult-to-evaluate endings like KQP v KQ the 5-men EGTB do not
really increase Houdini's playing strength.
To handle this situation in an intelligent way, Houdini will vary the frequency at which
the EGTB are probed depending on the actual end game that is occurring. In difficultto-evaluate endings Houdini will probe the EGTB files much earlier than in endings that
are easy to evaluate.
The frequency of the probing is further influenced by the following parameters:
H ard Probe Depth is the earliest search depth at which the EGTB probing will result
in a disk access. You can reduce this value if the table base files are installed on a
very fast disk, or if you are running less than 4 threads.
Soft Probe Depth is the earliest search depth for EGTB probing that uses only the
memory cache. You can reduce this value if you are running less than 4 threads.
2012 Cruxis
Part
39
NUMA-awareness
Most CPU mother boards with multiple sockets employ the so-called "NUMA"
architecture.
Houdini Pro detects the NUMA configuration at start-up and will adapt its memory
management and thread interaction based on the different NUMA nodes that are
available.
Speed gain can be 5% to 15% depending on the number of cores, the motherboard
and CPU brand.
2012 Cruxis
40
Best Split
Depth
Speed Gain
Standard
14
13600 kN/s
14
14900 kN/s
+10%
12
16200 kN/s
+20%
On this system Houdini Pro with NUMA and Large Pages was about 20% faster than
the Standard version.
2012 Cruxis