How to Optimize Your Chess Engines In Your Chess GUI

Submitted by Tom Thorp on Thursday, March 9, 2017 - 17:35
Modified on Friday, July 5, 2019 - 22:53
Chess Computer

Introduction

Development of computer processors have been doubling their processing speed year-on-year, and their is no sign of things slowing down. Along with this, the development of chess engines has gone ahead in leaps and bounds. It is now not uncommon that chess engines can process chess positions at over 10 millions nodes per second, and search 30-50 ply deep. Gone are the days where a human could defeat a chess computer. Now, chess grand masters need to be handicapped in their favour in order to make it an even match.
 

Optimizing your chess engine

There are four components to consider when optimizing your chess engine. They are :
  • Hardware
  • Opening book
  • Tablebase
  • Engine parameters
 

Hardware

Obviously the more CPU's and memory you can run on your computer, the more nodes/second it can process. Also, dependent on the chess engine that you are running, the less chance your engine will make a move that will lose a game to a slower computer.
 

Opening Book

The Opening Book is a library of chess opening theory moves. It is constantly evolving by computer chess enthusiasts who evaluate millions of games played against chess engines. If there is a line or series of moves that's discovered that leads to a win for the opposing side, then that line is taken out as a line of choice and alternatives are sought. There are often competitions in the online chess community to test their opening book against others to see which opening book running similar hardware and engines leads to the most wins.
Links to strong opening books follow at the end of this knowledgebase.
 

Tablebase

A Tablebase is a database of all possible valid chess positions for a set number of chess pieces on the board. This is particularly useful in endgame situations where there are not many pieces on the board to consider. When a chess position reaches a tablebase position, the tablebase takes over processing from the engine. From there, it plays out the ideal required number of moves, whether it leads to a win, loss or draw.
 
During the progress of the game, the chess engine will make many queries to the tablebase. On some occasions, the number of queries it makes actually slows down the overall speed of the engine. (Most noticeable with 6 man tablebases.) If this happens, you can either a) make a configuration change (by increasing the Syzygy Probe Depth parameter), or b) move the tablebases to a drive with low latency (such as a SSD or ramdrive).
 

Engine Parameters

Configuring the parameters on your chess engine, can sometimes make the difference between winning and losing. I've found the following configuration works best for blitz games:
  • load the 5-man tablebase onto a ramdrive
  • have a small hash-table
  • have a large opening book that's optimized
  • reserve 1 thread (process) for the GUI to prevent delays sending the move
For long games, I've found the following configuration works best:
  • load the 6-man tablebase onto a SSD. (If the engine slows down in the endgame, increase the Syzygy Probe Depth parameter)
  • have a large hash-table
  • play a maximum 25 moves (50 ply) of the opening book
  • use all available threads (processes).
 

Conclusion

There are numerous resources on computer chess available on the internet. I have provided some useful links below to get you started.
 

About the author

Tom Thorp
Tom Thorp is an IT Consultant living in Miami on Queensland's Gold Coast. With over 30+ years working in the IT industry, Tom's experience is a broad canvas. The IT services Tom provides to his clients, includes :
 
Website development and hosting
Database Administration
Server Administration (Windows, Linux, Apple)
PABX Hosting and Administration
Helpdesk Support (end-user & technical).
  If you like any of my content, consider a donation via Crypto by clicking on one of the payment methods :
 
Categories