Answers.Body: <p>Multicore is important for chess engines, but it doesn't scale forever.</p>
  
  <ul>
  <li>Up to certain depth, no matter how much hardware you have, you just don't have enough computational power</li>
  <li>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.</li>
  <li>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.</li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-05-06T04:20:48.073Z
Answers.Text: Is there any possible estimate for "how much"? Say, "doubling the computational power is approximately ~50 elo"?
Answers.UserDisplayName: Allure
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-04-27T09:35:09.517Z
Answers.Text: 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.
Answers.UserDisplayName: Inertial Ignorance
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-23T09:09:45.683Z
Answers.Text: 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.
Answers.UserDisplayName: Thorbjørn Ravn Andersen
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-04-29T08:08:42.903Z
Answers.LastActivityDate: 2019-04-29T08:08:42.903Z
Answers.UserDisplayName: SmallChess
Answers.Body: <p>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.</p>
  <p>Partial answer #2: Komodo developer Larry Kaufmann <a href="http://talkchess.com/forum3/viewtopic.php?f=2&amp;t=73759#p841287" rel="nofollow noreferrer">writes here</a> that -</p>
  <blockquote>
  <p>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.</p>
  </blockquote>
  <p>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.)</p>
  <p>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). <a href="http://talkchess.com/forum3/viewtopic.php?f=2&amp;t=74188" rel="nofollow noreferrer">Source</a>. In this range, the scaling looks pretty linear.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-09-11T07:55:23.523Z
Answers.LastActivityDate: 2020-06-23T07:34:18.797Z
Answers.LastEditDate: 2020-06-23T07:34:18.797Z
Answers.UserDisplayName: Allure
Answers.Body: <p>I didn't do the experiment but I  think it should be something like <a href="https://i.sstatic.net/LOzvS.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/LOzvS.png" alt="enter image description here"></a></p>
  
  <p>As @SmallChess said in his <a href="https://chess.stackexchange.com/a/24340/18143">answer</a>: required computational power grows exponentially and at a certain depth it would be just way too big.</p>
  
  <p>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) </p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-04-29T14:03:04.873Z
Answers.Text: 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.
Answers.UserDisplayName: Dennis Jaheruddin
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-04-29T11:01:13.537Z
Answers.LastActivityDate: 2019-04-29T11:01:13.537Z
Answers.UserDisplayName: MrMaxPayne
Body: <p>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?</p>
  
  <p>Is there a general relation for this? Also, does this scaling depend on which engine is used, and if so, why?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-09-12T11:51:57.350Z
Comments.Text: Hi, this post seems to have received decent answers, if you have found one to be particularly satisfactory please consider [accepting](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) it, as it's important to give [closure](https://meta.stackexchange.com/questions/163740/actually-how-important-is-accepting-an-answer-to-the-stack-exchange-model/163743#163743) to well addressed posts. Thanks for considering it.
Comments.UserDisplayName: user929304
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-04-29T08:29:11.027Z
Comments.Text: +1; also of interest: how the strength scales with the increasing RAM availability.
Comments.UserDisplayName: GloriaVictis
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-04-29T14:46:12.443Z
Comments.Text: See [Amdahl's law](https://en.wikipedia.org/wiki/Amdahl%27s_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.
Comments.UserDisplayName: Pavel
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-06-23T09:07:28.760Z
Comments.Text: 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.
Comments.UserDisplayName: Thorbjørn Ravn Andersen
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-04-09T12:06:04.247Z
Comments.Text: Curious what would be the evaluation if time isnt a constraint, in other words, is the analysis of running on an 8-core, weaker at 40 depth, than the analysis of running on 12/24/32 cores also at 40 depth? (all things being equal except the number of cores)
Comments.UserDisplayName: Purefan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2022-04-09T13:04:26.060Z
Comments.Text: @Purefan probably not, because engines at fixed depth are relatively deterministic. You'll take more time to get there, of course.
Comments.UserDisplayName: Allure
Tags: <engines><software><depth>
Title: How does engine strength scale with hardware?
ThreadText: # How does engine strength scale with hardware?
  
  (Asked by: username_0 on 2019-04-29)
  
  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?
  
  **Tags:** engines, software, depth
  
  > **Comments:**
  > **username_2**: +1; also of interest: how the strength scales with the increasing RAM availability.  
  > **username_3**: See [Amdahl's law](https://en.wikipedia.org/wiki/Amdahl%27s_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.  
  > **username_1**: Hi, this post seems to have received decent answers, if you have found one to be particularly satisfactory please consider [accepting](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) it, as it's important to give [closure](https://meta.stackexchange.com/questions/163740/actually-how-important-is-accepting-an-answer-to-the-stack-exchange-model/163743#163743) to well addressed posts. Thanks for considering it.  
  > **username_4**: 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.  
  > **username_5**: Curious what would be the evaluation if time isnt a constraint, in other words, is the analysis of running on an 8-core, weaker at 40 depth, than the analysis of running on 12/24/32 cores also at 40 depth? (all things being equal except the number of cores)  
  > **username_0**: @username_5 probably not, because engines at fixed depth are relatively deterministic. You'll take more time to get there, of course.  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_6 on 2019-04-29. Score: 12
  
  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.
  
  > **Comments:**
  > **username_0**: Is there any possible estimate for "how much"? Say, "doubling the computational power is approximately ~50 elo"?  
  > **username_7**: 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.  
  > **username_4**: 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.  
  
  ---
  
  ### Answer by username_0 on 2019-09-11. Score: 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](http://talkchess.com/forum3/viewtopic.php?f=2&t=73759#p841287) 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](http://talkchess.com/forum3/viewtopic.php?f=2&t=74188). In this range, the scaling looks pretty linear.
  
  
  ---
  
  ### Answer by username_8 on 2019-04-29. Score: 4
  
  I didn't do the experiment but I think it should be something like [![enter image description here](https://i.sstatic.net/LOzvS.png)](https://i.sstatic.net/LOzvS.png)
  
  As @username_6 said in his [answer](https://chess.stackexchange.com/a/24340/18143): 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)
  
  > **Comments:**
  > **username_9**: 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.  
  
  ---
  
  