Do multi-core CPUs still suffer from diminishing returns in today's world?
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Hypnotic Puzzle2
--
Chapters
00:00 Do Multi-Core Cpus Still Suffer From Diminishing Returns In Today'S World?
00:38 Accepted Answer Score 7
01:55 Answer 2 Score 2
02:30 Answer 3 Score 5
04:53 Answer 4 Score 0
05:53 Thank you
--
Full question
https://superuser.com/questions/453799/d...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#cpu #multicore #communityfaqproposed
#avk47
ACCEPTED ANSWER
Score 7
It depends heavily on what you do.
For regular ol' Word and Excel and Minesweeper and whatever else your mom uses, one core is still enough and more than two is an overkill. These kinds of applications spend most of the time idling, waiting for user input.
For gaming you'll benefit from at least two. After that it depends on the game. Theoretically you could run each AI opponent on a separate thread, but the central game logic cannot be easily parallelized - you need one place where all the results are put together to form a coherent game state. So there is usually one "main" thread that everyone waits on.
For multimedia, real number crunching, and science every core counts. These are tasks that are either inherently multithreaded or can be easily made so, and the developers have strong incentive to take advantage of all available processing power.
Power users like to multitask. Torrent, VirtualBox, screen capture, video, minecraft, and web browsing all running at the same time. So you're going to benefit from each CPU-hungry app having its own core. Nowadays it's popular to livestream your game. So that's two cores for the game, at least one more for the encoder thread, and at least one more for the rest of the system. That's at least 4 cores.
ANSWER 2
Score 5
I'm afraid the answer is still, as it always has been, "it depends on what you're doing".
Yes, there are diminishing returns from adding more and more cores, and there always will be if you only run a single application at a time.
Even in a well made multi-threaded application, many of the tasks that are threaded out are done so to wait for the slowest components in the machine - hard drive, networking - without impacting the apparent performance to the user. These cannot be improved by greater parallelisation so any theoretical speed up limit is unreachable for practical purposes.
It's worth noting that there are few "big" applications that are not multi-threaded (just check out your OS's Task Manager equivalent, it should be able to tell you how many belong to each process - my Firefox is currently using 31, for example).
Of course, running multiple non-interdependent applications is not as constrained by these limits. As you add more cores you can run more applications concurrently with little drop in processing performance (hard drive, networking, etc performance doesn't scale as nicely, however). In practice, even this too is subject to diminishing returns as there is an unavoidable overhead to managing the distribution of work between cores, communication pipelines, and so on.
For example, this Tom's Hardware post (from 2009) attempts to look at performance of a few multi-core processors under simultaneous applications - running a game along side a AVG scan (both of which are probably multi-threaded). The quad-, tri- and dual-core processors all perform similarly with the game only, but add the simultaneous AVG scan and the performance (measured by average FPS) drops by 22%, 40% and 59% respectively.
So, while a quad core offered no performance boost over a dual core when running one intensive application, as soon as another intensive task appeared it did end up being twice as performant. Unfortunately, I can't find much else that investigates how well this scales with more cores and more intensive tasks.
And then you have to take note of modern features of processors such as Intel's Turbo Boost / AMD's Turbo Core. These particular features allow a multi-core processor it park cores (put them in to a slower, low power, mode) and use the spare energy to overclock the cores that remain active - allowing the processor to optimise itself to provide as much processing power as possible for the number of tasks it is presented with.
ANSWER 3
Score 2
For adding fuel to the fire, I read here that Android is actually slowed down by having more than one core:
The use of multi-core processors can actually make Android devices slower, said Mike Bell, general manager of Intel's mobile and communications group, who blames Android's multi-threading capability, or lack thereof, for the operating system's difficulty in effectively handling powerful CPUs.
The more cores a device has, the more power it requires - and, for the time being, that amount of power is simply too much for Android devices to balance.
ANSWER 4
Score 0
Of course, it depends on what you're doing, but yes, there are diminishing returns.
Simple, everyday applications such as word processing or Web browsing benefit little from having more than two processor cores. Scientific computing and gaming applications tend to make better use of four (or more) cores and/or hyperthreading capability as they tend to be designed to make the most of modern hardware, but the benefit of more than four cores is limited.
In addition, not everything is compute-bound. Adding processor cores won't help if your workload is I/O bound. If you've ever installed an SSD to replace a mechanical hard drive, you'll probably know that everyday computing performance is limited more often than not by your computer's storage. In busy server environments where a large number of cores is used to enable the system to handle large numbers of users and requests simultaneously, specialized disk arrays, SSD, and other storage systems are used to ensure maximum performance under load.