14

Say I run Komodo on my 4-core machine. How much stronger would Komodo be if I used an 8-core machine? A 40-core machine? A 4000-core machine?

Is there a general relation for this? Also, does this scaling depend on which engine is used, and if so, why?

  • +1; also of interest: how the strength scales with the increasing RAM availability. – GloriaVictis Apr 29 '19 at 8:29
  • 1
    Nowadays answers to this are heavily dependent on the ability of software to use multiple cores efficiently. It's always a question of diminishing returns, but whether the cutoff is at 2, 4, 8... cores depends on the software. Browse through some Superuser questions: superuser.com/search?tab=Relevance&q=is%3aq more cores) – user4378 Apr 29 '19 at 13:57
  • 2
    See Amdahl's law. Any computer program can benefit of only so many cores, adding more will not help speed the computation up. Any chess program is a computer program and thus limited by the law. They may differ in the level of sophistication and optimization, but it is safe to say that you won't get much more performance from 4000 cores compared to 40 cores from a program you run on 4 cores. – Pavel Apr 29 '19 at 14:46
  • Hi, this post seems to have received decent answers, if you have found one to be particularly satisfactory please consider accepting it, as it's important to give closure to well addressed posts. Thanks for considering it. – user929304 Sep 12 '19 at 11:51
  • As of 2020 64-core threadripper cpu's are available (for a hefty price). Many, many cores is not an unrealistic scenario in a few years time. – Thorbjørn Ravn Andersen Jun 23 at 9:07
10

Multicore is important for chess engines, but it doesn't scale forever.

  • Up to certain depth, no matter how much hardware you have, you just don't have enough computational power
  • Yes. Scaling is heavily implementation dependent. For example, a simple mutex would make multithread programming much easier (any decent programmer will agree here), but that'd also make the engine run much slower than another engine runs without mutex locking.
  • 40 cores machine will play stronger than an 8-core machine, although it's hard to state how much. A 4000 core machine should also play stronger than a 40 core, but it's harder to justify the costs for smaller Elo improvement.
| improve this answer | |
  • 2
    Is there any possible estimate for "how much"? Say, "doubling the computational power is approximately ~50 elo"? – Allure May 6 '19 at 4:20
  • Building off your first point, since the search space grows exponentially as you increase the depth, adding more cores (a linear optimization) can only get you so far. – Inertial Ignorance Apr 27 at 9:35
  • The typically limit is whether the engine can provide work for all cores at all times. If results needs to be combined to generate new work, that frequently is a synchronization bottleneck. – Thorbjørn Ravn Andersen Jun 23 at 9:09
6

Partial answer: TCEC Stockfish plays with 43 cores and threads, while the so-called Redfish kitbitzing engine (which is basically Stockfish on stronger hardware) plays with 192 cores and 256 threads. Running at 4x the speed (as measured by nodes per second), Redfish is +50 elo stronger than TCEC Stockfish.

Partial answer #2: Komodo developer Larry Kaufmann writes here that -

Komodo is rated 3423 CCRL Rapid on four cores, but will be playing on a 32 core Threadripper which should boost its Rapid rating to around 3600.

If each core contributes roughly the same to speed, then 32 cores is 8x the speed of the original, and that translates to about 180 elo. (Of course this makes it seem like Komodo scales better than Stockfish, but Stockfish is going from 43 to 192 cores which is much more firmly in the logarithmic part of the curve.)

Partial answer #3: the performance of Komodo 14 drops from +80 elo (2 threads vs 1 thread) to +4 elo (128 threads vs 64 threads). The performance of Stockfish 11 drops from +90 elo (2 threads vs 1 thread) to +14 elo (128 threads vs 64 threads). Source. In this range, the scaling looks pretty linear.

| improve this answer | |
4

I didn't do the experiment but I think it should be something like enter image description here

As @SmallChess said in his answer: required computational power grows exponentially and at a certain depth it would be just way too big.

for simpler position however it's not the case because the engine would've explored all the possibilities before reaching its full capacity (ie: maximum depth)

| improve this answer | |
  • The graph seems about right (assuming it is strenght increase vs resource increase). For simple positions it does not help to have more compute, but for complex positions it can carry you across the tipping point, so I would leave specific positions out of the discussion. – Dennis Jaheruddin Apr 29 '19 at 14:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.