06 November 2017

Improve Engine Hardware - Specs

The first step to attain the objective established in Engine Trouble ('to investigate what sort of engine setup I would need to improve my result') was to Improve Engine Software. The second step will be to 'Improve Engine Hardware'. Because the subject is so broad, this can't be covered in a single post.

The best introduction to using chess engines is undoubtedly Advanced Chess - Hints to Get Started in Computer Assisted Play (serverchess.com). Although it rambles from topic to topic, it covers nearly everything worth knowing. The first piece of advice about hardware is:-

If purchasing a new computer, order the largest power supply, speediest motherboard / multi-core processor, most memory, largest hard drive and best cooling system you can fit into the case. Think high-end gaming machine, not a generic or "internet" computer.

In other words, consider the attributes of each component of the system on its own. More specifically,

You will need a "deep" or multi-core version of a chess engine and 64-bit motherboard version of Windows®. And, last but not least, enough memory (8, better 16 gigabytes) to hold the millions of positions generated by an engine.

In other words, the more parallelism in the system, the better. The top chess engines thrive on multi-processing.

You will not be able to purchase such a computer for $500 at Best Buy or Walmart! A desktop x64 with i7 processor (4 actual cores, not 2 cores and hokey hyper-threading) and 16 gigabytes of memory will be more like $2.000.

In other words, be prepared to spend more than you usually spend on computing equipment.

Robert Houdart advertises his state-of-the-art chess engine, Houdini 4 Pro, as capable of utilizing 32 threads (16 cores) and 256 gigabytes of hash memory. There's not a PC in the world can meet those standards (Intel and AMD just began offering 8, 10 and 12-cores in a single processor configuration). One must move up to the workstation class of computer to run that many cores and that much memory.

Before going any further, it might be useful to define some of that non-chess jargon. From Wikipedia's Multi-core processor:-

A multi-core processor is a single computing component with two or more independent actual processing units (called "cores"), which are units that read and execute program instructions.

The 'Advanced Chess' article I've been quoting also mentions a 'dual quad-core machine'. A photo of one is shown below, where the two processor chips are easily seen on the left..

aTCA-6100 Dual Quad-Core Intel Xeon L5518 AdvancedTCA Processor Blade (embeddedstar.com)

The related article explains,

The aTCA-6100 features two 2.13 GHz quad-core Intel Xeon 5500 series processors, Intel 5520 chipset, up to 48 GB of DDR3 memory, and an optional PICMG mid-size AMC bay for maximum computing performance and flexibility.

The 'Advanced Chess' article touches on 'hyper-threading', although used pejoratively. Wikipedia's Hyper-threading says,

For each processor core that is physically present, the operating system addresses two virtual (logical) cores and shares the workload between them when possible. The main function of hyper-threading is to increase the number of independent instructions in the pipeline.

In the next post in this series, I'll go a little deeper into these concepts.

No comments: