0% found this document useful (0 votes)
80 views39 pages

Houdini 5 Chess Engine - User's Guide

Uploaded by

arry2605
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
80 views39 pages

Houdini 5 Chess Engine - User's Guide

Uploaded by

arry2605
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

Houdini 5 Chess Engine

User's Guide
Houdini 5
The Leading Chess Engine
by Robert Houdart

Houdini is a state-of-the-art chess engine 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 5 Chess Engine
© 2016 Cruxis

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: November 2016


4 Houdini 5 Chess Engine

Table of Contents

Part I Introduction 6
1 Version
...................................................................................................................................
History 6

Part II Installing and Running Houdini 12


1 Installing
...................................................................................................................................
Houdini 12
2 Running
...................................................................................................................................
Houdini in a graphical chess environment 12
3 Installation
...................................................................................................................................
with Arena 3.5 13
4 Installation
...................................................................................................................................
with Fritz/ChessBase GUI 17
5 Installation
...................................................................................................................................
on Linux using Wine/Wine64 19
6 Off-line
...................................................................................................................................
Activation 20
7 Some
...................................................................................................................................
Frequently Asked Questions 22

Part III Houdini Configuration 25


1 Hash
...................................................................................................................................
Memory 25
2 Persistent
...................................................................................................................................
Hash 26
3 Cores
...................................................................................................................................
and Threads Management 27
4 Game
...................................................................................................................................
Play 28
5 End
...................................................................................................................................
Game Table Bases 31
6 NUMA
...................................................................................................................................
support (Houdini Pro) 32

Part IV End Game Table Base support 34

Part V Houdini Pro version 37

Index 0

© 2016 Cruxis
Part

I
6 Houdini 5 Chess Engine

1 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.

Each Houdini release since December 2010 has been leading the major computer chess
rating lists and has been widely considered to be the strongest chess engine money
can buy. From numerous interviews it appears that many top Grand Masters including
chess World Champions 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 5.01
Released November 15, 2016.

Corrections
The Chess960 castling codes are now correctly handled. As a bonus, the Chess960
support is now compatible with Arena which uses the non-standard O-O and O-O-O
as Chess960 castling moves.
Houdini 5 Pro: Setting the thread affinities now also works on Windows 7 and
Windows Server 2008.

Improved compatibility with GUIs


Work-around for some GUI's not showing engine output at depth 1: Houdini now
generates a line with depth 99 in table base positions.
The behavior of the MultiPV_cp parameter ("Delta") in Aquarium is reverted to what
it was in Houdini 4, which seems more intuitive to Aquarium users.

Changes to UCI Options requested by users


For the "Contempt" option the minimum value has been changed from 0 to -10. This
means that Houdini 5 can now play with negative contempt, which is not
recommended but interesting to try.

© 2016 Cruxis
Introduction 7

A new "Move Overhead" option for users playing engine games in which the move
transmission has a time lag; the option specifies the extra time needed for each
move in milliseconds.
The new "UCI Log File" parameter, when set, will produce a log file of all the UCI
communication of the engine.

Houdini 5
Released November 7, 2016.

Released nearly 3 years after the previous version, the eagerly anticipated Houdini 5 is
a rejuvenated and vastly improved engine.
Incorporating techniques and ideas developed over the past three years, Houdini 5 is
about 200 Elo stronger than its predecessor. An important contributor to this giant
leap in strength is the completely rewritten positional evaluation function. More
aggressive King safety and sophisticated piece mobility are the keys to Houdini 5
unique playing style, combining aggressive ideas with sound positional judgment and
plans.

By being more selective in its move choices, Houdini 5 now searches significantly
deeper than before. This pays huge dividends in every stage of the game, but
particularly in end games. For the best end game play, the new Houdini continues to
support Syzygy end base tables, which can now be combined with the Nalimov tables
to find the shortest path to mate.

The new Houdini implements the so-called "lazy SMP" algorithm and performs better
than before on hardware with multiple processor cores. Up to 128 threads are now
supported by the Houdini 5 Pro engine.

All major features of previous Houdini versions are still available: multi-PV analysis with
user-definable evaluation threshold, Chess960 support and Persistent Hash (saving
analysis results to a disk file for later reuse). The unique Tactical Mode has been
updated and is now stronger than ever to find tactical solutions in positions.

A development version of Houdini 5 achieved a resounding victory with a score of


56/62 (50 wins and 12 draws) in the TCEC Season 9 Rapid tournament that featured
the best 32 engines in the world. The final release version of Houdini 5 is about 30 Elo
stronger than the engine that played in the TCEC tournament.

Houdini 4
Released November 25, 2013.

Houdini 4 contains many evaluation and search improvements in all phases of the game
and is about 50 Elo stronger than its predecessor. The improved strength means that
Houdini 4 nearly doubles the chess performance of your PC for game analysis and
match play.

A major feature is the support of the new 6-men Syzygy table bases. Houdini 4 has
been extensively tuned for this state-of-the-art end game table base system and will
provide optimum precision and strength in the late endgame at any time control and
with any number of cores.

© 2016 Cruxis
8 Houdini 5 Chess Engine

While we strongly recommend using the 6-men Syzygy tables, Houdini 4 continues to
support Nalimov and Gaviota table bases.

Houdini 4 maintains and improves on all the goodies that made previous Houdini
versions the preferred analysis tool for many chess players. The Tactical Mode of
Houdini 4 will find more solutions and provide faster solution times in tactical test
suites than any other engine.
Persistent Hash and Learning are essential tools for storing your valuable analysis
results for future use.
Houdini's very efficient multi-PV analysis and its support for Chess960 a.k.a. Fischer
Random Chess remain the reference in the industry.

Houdini 4 uses calibrated evaluations in which engine scores correlate directly with
the win expectancy in the position. A +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.

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.

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.

© 2016 Cruxis
Introduction 9

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.

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.

© 2016 Cruxis
10 Houdini 5 Chess Engine

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.

© 2016 Cruxis
Part

II
12 Houdini 5 Chess Engine

2 Installing and Running Houdini


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 128 cores (Houdini Pro version). The 64-bit
version is about 40% faster than the 32-bit version. On modern hardware the program
will use the POPCNT or PEXT processor instructions for an additional performance gain.
The Houdini Setup will automatically install the fastest version that will run on your
hardware.

The Houdini Pro package also contains a copy of the Houdini Standard engine. This
can be useful in situations where you want to avoid some automatic behavior of the
Pro engine with regards to Large Pages or NUMA awareness.

2.2 Running Houdini in a graphical chess environment


Houdini is a so-called "UCI-compatible" chess engine that requires a graphical chess
environment or chess "GUI" (Graphical User Interface) to run. This GUI will show you
the chess board and allow you to play chess games or analyze positions.

For the best user experience of Houdini you'll need to install a graphical chess
environment like the free Arena, SCID or Winboard, or the commercial Shredder,
ChessBase or Aquarium.

After installing the chess environment, you can install Houdini as a UCI engine:
Arena: use the "Engines", "Install New Engine" menu.
Shredder Classic GUI: use the "Extras", "Engines", "Install Engine" menu.
Fritz/ChessBase GUI: use the "Engine" tab, "Create UCI Engine" button.
Aquarium: use the "Add" button on the "Engines" tab.

When a file selection dialog opens, go to the "C:\Program Files\Houdini 5 Chess" folder
and select the "Houdini 5.exe" file.

The next chapter contains a step-by-step installation of Houdini in Arena 3.5 and in
the ChessBase/Fritz GUI.

© 2016 Cruxis
Installing and Running Houdini 13

2.3 Installation with Arena 3.5


1) Download Houdini Setup from the download link you received by e-mail.

2) Run the Houdini Setup.


After selecting the installation language you'll see the following welcome screen:

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.

Finish the installation right to the end.


All the Houdini files will now have been installed on your hard disk in the folder "C:
\Program Files\Houdini 5 Chess".
You should find them as in the following image (taken from a Houdini Pro installation):

© 2016 Cruxis
14 Houdini 5 Chess Engine

3) Download the Arena Setup from http://www.playwitharena.com.


Go to the Downloads page and select the most recent "Arena Setup" package - at the
time of writing this is "Arena 3.5.1 Setup".

4) Run the Arena Setup


All the default installation options are OK, just click the "Next" button.
At the end of the set-up you'll automatically run Arena.

5) Run Arena
After selecting your language, you'll find the main screen of Arena.

6) Install Houdini as a UCI engine


Click on the "Engines" menu, select "Install New Engine...".

© 2016 Cruxis
Installing and Running Houdini 15

A file selection dialog opens, go the "C:\Program Files\Houdini 5 Chess" folder and
select the "Houdini 5.exe" file.
Arena will then offer the choice between "UCI" and "Winboard", simply click OK to keep
the default UCI.
Arena will start the Houdini engine.

7) Congratulations, you've successfully installed Houdini in Arena!


You can now play games or run analyses.

8) Some further recommended options:

A) Click on the "Engines" menu, select "Manage...", the Engine Management window
pops up.
Go to the "Options" tab and select the "Lower than Normal" option in the "Engine
process priority in operating system" group.

B) Remove all the "Common Parameters Settings" in the "UCI" tab so that you can
configure individual settings for all engines.
See the following screen shot:

© 2016 Cruxis
16 Houdini 5 Chess Engine

C) Disable the "Ponder" option in the Engines menu.


Ponder a.k.a. "permanent brain" does not work very well for UCI engines in Arena.

D) If you want to play games against the engine, adapt the Strength of Houdini to
match your skill level.
Right-click on the bottom part of the Arena window and select the "Configure Houdini
5" option (or press CTRL-1).
The configuration window will pop-up:

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.

© 2016 Cruxis
Installing and Running Houdini 17

2.4 Installation with Fritz/ChessBase GUI


1) Download Houdini Setup from the download link you received by e-mail.

2) Run the Houdini Setup outside the Fritz/ChessBase GUI.


After selecting the installation language you'll see the following welcome screen:

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.

Finish the installation right to the end.

3) All the Houdini files will now have been installed on your hard disk in the folder "C:
\Program Files\Houdini 5 Chess".
You should find them as in the following image (taken from a Houdini Pro installation):

© 2016 Cruxis
18 Houdini 5 Chess Engine

4) Run the Fritz/ChessBase GUI, select the "Engines" tab and click the "Create UCI
Engine" button.

The following "Set up UCI engine" window will open:

Click on the “…” button in the upper right.


Select the engine file "Houdini 5.exe" from the folder "C:\Program Files\Houdini 5
Chess".
Check the “Priority Below normal” box to keep the GUI responsive when the engine is
running, then click OK.

Congratulations, you've now completed the Houdini installation in the Fritz/ChessBase


GUI!

© 2016 Cruxis
Installing and Running Houdini 19

2.5 Installation on Linux using Wine/Wine64


To run Houdini on Linux you'll need to install Wine or Wine64.
Below some installation experiences and tips kindly shared by Houdini users. If you
have additional experience - positive or negative - that could benefit other Houdini
users, please let us know by e-mail and we'll add it in this manual.

Ubuntu 16.04 or Ubuntu 14.04


The following commands install "Houdini 5 Pro" using wine version 1.6.2 on a 64-bit machine.
Install Houdini 5 Pro on Ubuntu 16.04 (64-bit) or Ubuntu 14.04 (64-bit) with the following:

wget
http://www.cruxis.com/download/xxxxxxx/Houdini-5-Pro-Setup-xxxxxxxx.
exe
sudo apt-get install wine
wine Houdini-5-Pro-Setup-xxxxxxxx.exe

Click through installation steps, accepting default values.


Installation is complete. Houdini 5 is installed in your /home/user/

~/.wine/drive_c/Program Files/Houdini 5 Chess/

Houdini can be launched from the command line with

wine ~/.wine/drive_c/Program\ Files/Houdini\ 5\ Chess/Houdini\ 5.exe


or
wine ~/.wine/drive_c/Program\ Files/Houdini\ 5\ Chess/Houdini\ 5\
Standard.exe

Ubuntu 12.04
Success. I installed the 64-bit wine and then made another mistake and installed
Houdini 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 results in a working 64-bit Houdini installation.

Arena 3.5 installed under 64-bit wine (running on Ubuntu 12.04 64-bit) is able to make
use of the 64-bit Houdini exe file just fine. For those that like to run engine-vs-engine
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 32-bit
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

© 2016 Cruxis
20 Houdini 5 Chess Engine

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: .w ine -32bit . This is crucial also since wine
"knows" this is a 32-bit wine and the Houdini installation step about to come will install
32-bit Houdini if you do not take this step.

5. Open a terminal window and execute: w ine Houdini-5-Se t up-nnnnn.e xe . 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 installation prompts and it will install a 64-bit Houdini engine for you
to work with. I use SCID to run Houdini but Arena 3.5 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

2.6 Off-line Activation


Houdini requires a product activation via internet.
If you want to install Houdini 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.
Instead of a USB stick you can also use a shared network drive.

Below a step-by-step manual to perform the installation of Houdini on a computer


without internet access.

© 2016 Cruxis
Installing and Running Houdini 21

0. Prepare a USB memory stick on the computer with internet access


Download the Houdini Setup and copy to the USB memory stick (or shared network
drive).
Download the Off-line Activation Module and copy to the USB memory stick.
Write down your Customer Code and Serial Number, or copy the values to a text file
on your USB stick.

1. Run the Houdini Setup on the off-line computer


Run the Houdini Setup from the USB memory stick. Enter your Customer Code and
Serial Number when requested.
During production activation you'll get the error "Product Activation Failed" because of
the missing internet connection, you can simply ignore it.

2. Run the Off-line Activation Module on the off-line computer


Run the Off-line Activation Module from the USB memory stick.
Click on the "Collect System Info" button.
A "SysInfo.dat" file will be written to the USB memory stick.

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.

4. Run the Off-line Activation Module on the off-line computer


Run the Off-line Activation Module from the USB memory stick.
Click on the "Install Activation Code" button.
The Activation code will be registered and the Houdini engine files will be updated.

© 2016 Cruxis
22 Houdini 5 Chess Engine

2.7 Some Frequently Asked Questions

Q: Som e t im e s w he n Houdini runs m y c om put e r a ppe a rs t o be froze n a nd goe s v e ry


slow . Wha t c a n I do t o im prov e t he re sponsiv e ne ss of m y c om put e r w hile t he e ngine
runs?
There are several ways to keep your computer more responsive while Houdini is
thinking:
Run the engine at “Lower than normal” priority. Most chess GUI will provide this
option, for example:
- Arena has a "Lower than normal process priority" checkbox in the Engine
Management Options.
- Shredder GUI will automatically run engines at lower priority.
- Fritz/ChessBase has a "Priority Below Normal" checkbox in the dialog for creating
the UCI engine.
If you want to use your computer for other purposes while analyzing chess positions,
set the "Threads" configuration option to a value smaller than the the number of
physical cores of your computer - for example, use 3 on a quad-core computer. This
will leave one core available for other applications while the chess analysis runs in
the background.

Q: Wha t Ha sh Size do y ou re c om m e nd a t v a rious t im e c ont rols?


For infinite analysis or long Time Control matches you should use the largest hash
possible - typically about half of the total RAM memory of your computer. For example,
on a system with 4 GB of memory you can use up to 2048 MB hash size, on a 12 GB
RAM system you can use up to 8192 MB.
For shorter games, e.g. 3 to 5 minute games, it’s 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.

If you know the average move time T (in seconds) and the average node speed of
your hardware S (in kN/s), you can compute the optimal hash size with the formula: (T
x S / 100) MB.
For example if you use a Time Control of 10 minutes for 40 moves repeating, the
average move time T = 15 seconds. On hardware that produces about 2,000 kN/s the
optimal hash size would then be approximately (15 x 2,000 / 100) = 300 MB, in other
words 256 MB or 512 MB would be the recommended values.

Q: I'm running Houdini on a qua d-c ore Core i7 CPU w it h hy pe r-t hre a ding. Would y ou
re c om m e nd t o use hy pe r-t hre a ding w it h Houdini a nd run t he e ngine w it h 8 t hre a ds?
The additional hyper-threads will yield about 25% to 30% extra node speed, but the
inefficiency of the parallel alpha-beta search with the higher number of threads will
partially offset this speed gain. Running with 8 instead of 4 threads will therefore
produce only a small increase in Elo probably at most 10 Elo.
If your CPU can be overclocked it may be wiser not to use hyper-threading. By not
using the hyper-threading you will reduce the thermal load of the CPU which will allow
you to reach a higher overclocking frequency.

© 2016 Cruxis
Installing and Running Houdini 23

To illustrate this, in a 12 vs 24 threads test match on a 12-core computer (Intel Xeon


processor) the outcome after 1500 games was (+7 ±10 Elo) in favor of the 24-thread
engine. In other words even with 1500 games played the measured Elo difference was
still inside the error margin.

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?
You’re 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. It’s 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, here’s an example file:

[ENGINE]
Name=Houdini 5 x64-popc
Author=Robert Houdart
Filename=C:\Program Files\Houdini 5 Chess\Houdini 5.exe
Priority=below normal

[OPTIONS]
Threads=3
SyzygyPath=C:\tb\syzygy345;C:\tb\syzygy6

© 2016 Cruxis
Part

III
Houdini Configuration 25

3 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.5.

The same configuration window in the Shredder Classic 4 GUI:

Note that some GUIs will hide options that are handled elsewhere in its interface. For
example, in the second screen shot above the options "Hash", "Ponder", "MultiPV" and
"UCI_Chess960" are missing from the configuration window.

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.

© 2016 Cruxis
26 Houdini 5 Chess Engine

Default 128, min 1, max 1024 (32-bit) or 4096 (64-bit Standard) or 131072 (64-bit
Pro).
The value is rounded down to a power of 2 (1, 2, 4, 8, 16, 32, 64, 128, 256, 512,
1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072 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, it’s 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.

Clear Hash (button)


Button to clear the Hash Memory.
If the N ever Clear H as h option is enabled, this button doesn't do anything.

Never Clear Hash (checkbox)


This option prevents the Hash Memory from being cleared between successive games
or positions belonging to different games.
Check this option also if you want to Load the Hash from disk file, otherwise your
loaded Hash could be cleared by a subsequent ucinewgame or Clear H as h command.

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.

To load a Hash file from disk:


Load the correspondence game
Go to the options window, enter the name of the Hash File (e.g. C:\Chess\Game1.
dat)
Press the Load Hash from File button, and OK in the options window.

© 2016 Cruxis
Houdini Configuration 27

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.

Save Hash to File (button)


Save the current hash table to a disk file specified by the H as h File option.
Use the Save H as h to File button after ending the analysis of the position. Some GUIs
(e.g. Shredder, Fritz) wait for sending the button command to the engine until you
click OK in the engine options window.
The size of the file will be identical to the size of the hash memory, so this operation
could take a while.
This feature can be used to interrupt and restart a deep analysis at any time.

Load Hash from File (button)


Load a previously saved hash file from disk.
Use the Load H as h from File button after loading the game or position, but before
starting the analysis. Some GUIs (e.g. Fritz, Shredder) wait for sending the button
command to the engine until you click OK in the engine options window.
The size of the hash memory will automatically be set to the size of the saved file.
Please make sure to check the N ever Clear H as h option, as otherwise your loaded
Hash could be cleared by a subsequent ucinewgame or Clear H as h command.

3.3 Cores and Threads Management


Threads
Maximum number of threads (cores) used by the analysis.
Default is hardware-dependent, min 1, max 6 (Standard) or 128 (Pro).

If you intend to use your computer for other purposes while analyzing chess positions,
set "Threads" to a value smaller than the the number of physical cores of your
computer - for example, use 3 on a quad-core computer. This will leave one core
available for other applications while the chess analysis runs in the background.
Additionally you can run the engine at “Lower than normal” priority to reduce its
impact on the computer's responsiveness. Most chess GUI will provide this option, for
example:
- Arena has a "Lower than normal process priority" checkbox in the Engine
Management Options.
- Shredder GUI will automatically run engines at lower priority.
- Fritz/ChessBase has a "Priority Below Normal" checkbox in the dialog for creating the
UCI engine.

Hyper-threading

© 2016 Cruxis
28 Houdini 5 Chess Engine

If your computer supports hyper-threading it is usually recommended not using more


threads than physical cores. The additional hyper-threads will yield about 25% to 30%
extra node speed, but the inefficiency of the parallel alpha-beta search with the
higher number of threads will partially offset this speed gain. This means that the extra
hyper-threads will produce only a small increase in Elo probably at most 10 Elo.

To illustrate this, in a 12 vs 24 threads test match on a 12-core computer (Intel Xeon


processor) the outcome after 1500 games was +7 ±10 Elo in favor of the 24-thread
engine. Even with 1500 games played the measured Elo difference was still inside the
error margin!

If your CPU can be overclocked it may actually be wiser not to use hyper-threading.
By not using the hyper-threading you will reduce the thermal load of the CPU which
will allow you to reach a higher overclocking frequency.

3.4 Game Play


Tactical Mode (checkbox)
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 a popular tactical test suite with Houdini running at 20 seconds
per position with 2 threads on a Core i7-5820K using 512 MB hash.

Arasan 19 Tactical Suite, comprising 200 medium to hard positions


- Houdini 4 (normal mode) solves 123 positions, total solution time 34:59 minutes.
- Houdini 4 Tactical Mode solves 158 positions, total solution time 24:31 minutes.
- Houdini 5 (normal mode) solves 124 positions, total solution time 35:30 minutes.
- Houdini 5 Tactical Mode solves 168 positions, total solution time 20:57 minutes.

Note that the focus on tactical moves will reduce the playing strength of the engine,
the Tactical Mode is significantly weaker than the normal playing mode.

One can compare the Tactical Mode to what a human player does when he/she tries
to solve a test position in a chess magazine or website. He/she will scan for tactical,
forcing moves, threats, sacrifices etc. That way a lot more tactical solutions can be
found than what the player would actually see and decide to play over the board,
during a normal game. The "t his is a t e st posit ion" message changes the search
strategy.
Houdini's Tactical Mode works exactly the same, very human-like: it will spend a lot
more time looking for tactical moves, threats etc. In most positions this doesn't
provide any benefit - most of the time there is no tactical solution available and the
increased focus on tactics is just wasted. But in test positions (selected because
there IS a tactical solution) it works extremely well.

Strength
Limit strength from 0 (beginner) to 100 (full strength).
Default is 100 (full strength).

© 2016 Cruxis
Houdini Configuration 29

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 at reduced Strength levels.

Strength 0 => 1000 Elo


Strength 10 => 1300 Elo
Strength 20 => 1600 Elo
Strength 30 => 1900 Elo
Strength 40 => 2200 Elo
Strength 50 => 2500 Elo
Strength 100 => 3200 Elo

This table is very approximate - we welcome any feedback from rated players that
could improve these values.
What is the highest strength level that you can consistently beat?

UCI_Elo
UCI-protocol compliant version of Strength parameter.
Default 3200, min 1000, max 3200.

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.

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 220.
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 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.

© 2016 Cruxis
30 Houdini 5 Chess Engine

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 0, min -10, max 10.

The notion of "contempt" implies that Houdini will try to avoid draws by evaluating its
own position slightly too optimistically. Houdini will value its own pieces higher than the
opponent pieces and will only exchange them if there’s a clear positional advantage in
doing so.
The Contempt level can be chosen between -10 and 10. A contempt value of 2 will
typically reduce the draw rate in a match by about 5%. The impact on the evaluation
(the "optimism" of the engine, if you like) will be about 0,15 pawns for each level of
contempt.
The objectively highest level of play is achieved without contempt, i.e. Contempt
value 0. This is the default setting of the engine.

By default a non-zero contempt is only used 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. Because of the asymmetry in the
evaluations (the evaluation changes when you switch sides), this is usually not
recommended.

Analysis Contempt (checkbox)


Activate Contempt for position analysis.

It is usually not recommended to activate the contempt for analyzing positions.


When contempt is active, the score of the analysis will be optimistic (over-evaluated)
for the side that is to move. That means that if you use Analys is Contempt the
evaluations will change depending on whether White or Black has the move. For
example, from the start position, when you do an analysis with Analys is Contempt
(and Contempt value 1) you could find a best move e2-e4 scoring about +0.3 for
White. If you then play e2-e4 and analyze for Black you could find a score close to
+0.0. If you do the same without Analys is Contempt, you should find a consistent
+0.15 score whether it’s White or Black to move.

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);

© 2016 Cruxis
Houdini Configuration 31

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

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.

Move Overhead
Specifies the extra time needed for each move in milliseconds.
Default 0, min 0, max 5000.

This can be useful for users playing engine games in which the move transmission has
a time lag.
The time management will take into account this parameter in the time usage of the
engine.

UCI Log File


File name for saving a log of all the UCI communication of the engine.

3.5 End Game Table Bases


The Syzygy 6-men EGTB system is the recommended table base solution for Houdini.
For the Syzygy EGTB support you'll need to install the Syzygy EGTB files. At the time
of writing all the Syzygy files are available for torrent download at http://oics.
olympuschess.com/tracker/index.php. The 3-4-5-men Syzygy are also available for
direct download at http://olympuschess.com/egtb/sbases.
Update: the 6-men Syzygy are now also available as HTTP download, see http://
tablebase.sesse.net/syzygy.
The total size of the 3-4-5-men files is 938 MB (290 files), the 6-men table bases
require 149 GB (730 files).

For the Nalimov EGTB support (Houdini Pro only) 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 all 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 tables on DVD from several suppliers, this is probably
the more efficient way of obtaining the 6-men Nalimov table bases.

SyzygyPath
Folder(s) containing the Syzygy EGTB files. If multiple folders are used, separate them
by the ; (semi-column) character.
Example: C:\tb\Syzygy345;C:\tb\Syzygy6

© 2016 Cruxis
32 Houdini 5 Chess Engine

NalimovPath (Houdini Pro)


Folder containing the Nalimov EGTB files.

NalimovCache (Houdini Pro)


Amount of Nalimov EGTB cache memory in MB.
Default 32, min 4, max 1024.

EGTB Probe Depth


Minimum search depth for EGTB probing.
Default 5, min -10, max 99.
You could reduce this value if you want to probe more frequently, which could be
useful when the table base files are installed on a very fast disk and you are running
less than 4 threads.
For more detailed explanations, see the EGTB support topic.

3.6 NUMA support (Houdini Pro)


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.

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 40-core dual
Xeon box.

NUMA Offset
Default 0, min 0, max 15.
The NUMA offset is useful if you're running multiple instances of Houdini, in which case
you should assign a different NUMA node for each running Houdini process to avoid the
Houdini instances competing for the same resources.
For example, on a 16-core hardware with 4 NUMA nodes, you could be running four
Houdini processes each using 4 cores. By setting N uma Offs et to 0, 1, 2 and 3, each
Houdini instance will be running on its own NUMA node without conflicting with the
other Houdini instances.

© 2016 Cruxis
Part

IV
34 Houdini 5 Chess Engine

4 End Game Table Base support


Houdini integrates the Syzygy table probing code © Ronald de Man and the Nalimov
EGTB probing code © Eugene Nalimov.

The Syzygy 6-men EGTB system is the recommended table base solution for Houdini.
It features by far the best compression (smallest file size) and best performance,
especially when multiple threads perform simultaneous EGTB probing. Houdini has been
extensively tuned for this state-of-the-art end game table base system so as to
provide optimum precision and strength in the late endgame at any time control and
with any number of cores.
While installing the files on a SSD disk is recommended, the performance of the Syzygy
on a normal hard disk is still very good.

The only drawback of Syzygy bases is that they do not contain the exact Distance to
Mate information. If you require an exact mating distance in a position you can use
the Nalimov table bases (only available in the Houdini Pro version). Houdini can work
with both Syzygy and Nalimov table bases simultaneously. When the root position is
found in the Nalimov bases, the exact mate information will be used and the complete
mating PV will be shown.

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.

Syzygy EGTB
For the Syzygy EGTB support you'll need to install the Syzygy EGTB files. At the time
of writing all the Syzygy files are available for torrent download at http://oics.
olympuschess.com/tracker/index.php. The 3-4-5-men Syzygy are also available for
direct download at http://olympuschess.com/egtb/sbases.
Update: the 6-men Syzygy are now also available as HTTP download, see http://
tablebase.sesse.net/syzygy.
The total size of the 3-4-5-men files is 938 MB (290 files), the 6-men table bases
require 149 GB (730 files).
The location of the Syzygy EGTB files is specified in the SyzygyPath option.

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). The space requirement for the 6-men Nalimov table
bases exceeds 1 TB.
The location of the Nalimov EGTB files is specified in the N alimovPath option.

EGTB Probe Depth


The frequency of the EGTB probing can be configured with the EGTB Probe Depth
option.

© 2016 Cruxis
End Game Table Base support 35

EGTB probes are relatively 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
searched and evaluated many additional positions instead of making the rather useless
EGTB probe.

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 or KRP v KR the 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 difficult-
to-evaluate endings Houdini will probe the EGTB files much earlier than in endings that
are easy to evaluate.

The frequency of the probing is influenced by the EGTB Probe Depth parameter. You
can decrease this parameter to force Houdini to use the EGTB more frequently, or
increase it to have Houdini use the EGTB less frequently. By specifying the minimum
value of -10 you can effectively remove the built-in intelligence and force the engine
to probe always.

© 2016 Cruxis
Part

V
Houdini Pro version 37

5 Houdini Pro version


Houdini Pro is intended for power users with high-end hardware.
The main differences with the Standard version are:
Houdini Pro supports up to 128 threads.
Houdini Pro supports up to 128 GB of hash memory (131072 MB).
Houdini Pro supports Large Memory Pages.
Houdini Pro is NUMA-aware.
Houdini Pro can use Nalimov end game table bases.

Large Memory Pages


Houdini Pro will use so-called large memory pages if they are provided by the operating
system. Depending on the hash table size the speed gain may be between 5% and
15%.

To enable this feature in Windows, you need to modify the Group Policy for your
account:
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.

IMPORTANT: You'll also need to run your chess GUI with administrative rights ("Run as
Administrator") or disable UAC in Windows.
Very often large memory 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.

You can test the availability of Large Pages with the lp command. Run Houdini in a
command window (simply by double-clicking on the executable) and type lp followed
by Enter. Houdini will try to create large page memory blocks of increasing size and
show a summary of the results.

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.
The speed gain depends on the number of cores, the motherboard and CPU brand.

Running Multiple Houdini Pro instances


If you're simultaneously running multiple Houdini Pro instances they will by default
compete for the resources on the same NUMA nodes. To avoid this, you should set the
N UMA Offs et parameter to different values in the different Houdini instances.
For example, if you want to run two Houdini instances with 6 threads each on 12-core
hardware, you should use NUMA Offset 1 for the second instance so that it will
allocate its 6 threads on the second NUMA node. See also the NUMA Offset
configuration.

© 2016 Cruxis
38 Houdini 5 Chess Engine

Some Real Performance Data


40-core dual Intel Xeon v4 at 2.3 GHz
This test system is a 40-core dual Intel Xeon v4 box running at 2.3 GHz speed having
80 virtual processors (40 cores with hyper-threading) under Windows 10.
The system has two CPUs and two NUMA nodes; every CPU with 20 cores resides on
its own NUMA node.

A two minute benchmark was run on a number of positions using 1, 6, 20 and 40


threads with hash memory set at 2048 MB.
The impact of the Large Pages and the NUMA-awareness on the measured average
node speed was as follows:

Configuration 1 thread 6 threads 20 threads 40 threads


Standard or Pro 2,400 kN/s 13,600 kN/s 47,600 kN/s 58,700 kN/s
without NUMA
Pro with NUMA 2,400 kN/s 13,500 kN/s 47,800 kN/s 91,200 kN/s
Pro with Large 2,550 kN/s 14,500 kN/s 49,400 kN/s 67,300 kN/s
Pages
Pro with NUMA 2,550 kN/s 14,600 kN/s 49,500 kN/s 96,400 kN/s
and Large Pages

When the engine can run fully on a single CPU, i.e. up to 20 threads, Windows and the
Intel Xeons do a good job of providing excellent performance without any NUMA
awareness.
Only with 40 threads running on the two CPUs of the system the NUMA-awareness
becomes important.
For 2048 MB hash the speed improvement from using Large Pages is about 6%. The
impact grows when the size of the Hash Memory becomes larger; repeating the same
benchmark with 8192 MB of hash memory yields a speed increase from Large Pages of
nearly 10%.
The numbers also show that Houdini Pro scales nearly perfectly with the number of
threads: the 20-thread benchmark is nearly 20 times faster than the single-thread
result, and the 40-thread run is nearly 40 times faster.

24-core dual AMD Opteron 6174 at 2.3 GHz


This is a 24-core dual Opteron box comprised of 4 NUMA nodes of 6 cores each; each
12-core Opteron 6174 processor has 2 NUMA nodes.
A two minute benchmark was run on a number of positions using 1, 6, 12 and 24
threads with hash memory set at 2048 MB.
The impact of the Large Pages and the NUMA-awareness on the measured average
node speed was as follows:

© 2016 Cruxis
Houdini Pro version 39

Configuration 1 thread 6 threads 12 threads 24 threads


Standard or Pro 1,430 kN/s 8,350 kN/s 16,400 kN/s 31,500 kN/s
without NUMA
Pro with NUMA 1,440 kN/s 8,900 kN/s 17,700 kN/s 35,200 kN/s
Pro with Large 1,600 kN/s 9,100 kN/s 18,100 kN/s
Pages
Pro with NUMA 1,630 kN/s 9,400 kN/s 19,100 kN/s 39,300 kN/s
and Large Pages

The AMD CPU benefits more clearly from Large Pages and NUMA support.
With 24 threads the performance benefit provided by NUMA-awareness and Large
Pages is close to 25%.
As above, the scaling of the performance remains nearly perfect up to maximum
number of threads.

© 2016 Cruxis

You might also like