3

Specifically I am looking at either the i5-3570k or the FX-8350, but it made me think of a more general specific question on how multiple cores can improve general multitasking.

Been reading a lot of reviews, benchmarks, etc, all basically say the same thing: The faster clocked 4core I5 beats the slower clocked 8core FX in most applications, unless that application is specifically coded to take advantage of more then 4 cores. Games especially run better on the i5.

But as I was reading I noticed that pretty much all benchmarks are done in a vacuum. That is, that benchmark or software is the only thing being tested. But while that is good for testing that specific software, it's hardly a real world scenario.

For example, at any point during the day I may have several browsers open with several tabs, maybe Photoshop or Visual Studio, several background programs (antivirus, steam, keepass, etc). And that's on a light day.

So my question is: Theoretically, while the faster 4core will run individual pieces of software faster on their own, couldn't an 8core processor be better at running multiple pieces of software, even if they aren't necessarily 8core optimized, simultaneously?

1
  • Theoretically, but a lot would depend on how good the OS was at distributing applications to the various cores.
    – ChrisF
    Aug 9, 2013 at 21:36

2 Answers 2

2

Linux CPU Load

One useful measure is the Linux concept of CPU load. Basically, think of each CPU core is 1.00 available load units, and each task running at 100% of a core as 1.00 load units used. For a processing-intensive server, the ideal load is probably exactly the number of CPU cores (4.00 load for 4 CPU cores).

A busy loop (something like "while(true)") can take up 100% of one CPU, which is 1.00 load units. A single-threaded benchmark also peaks at 1.00. A multi-core-optimized benchmark might take up more cores, up to the 8.00 available on the FX-8350.

But, most of your apps (Chrome + Firefox open, Photoshop, Visual Studio), don't consume that much CPU when they're running in the background. True, they can run on multiple cores, but if they only use 10% of the available time (0.10 load units), those four apps only add up to a 0.40 load, and you see little benefit from having more than one CPU core. Similarly, applications busy blocking on disk or network accesses would not be using CPU time while they wait.

Average Load > 4.00

For cases when your application load is between 4.00 and 8.00, these are likely where performance of the FX-8350 would stand out. A 5.00 load on a 4-core CPU could lead to lots of contention for CPU resources, with task switching between tasks compounding the overhead involved.

Average Load < 4.00

Your question seems to be about the times when the math isn't quite so clear cut, though: whether 8 cores would be better on a sub-4.00 workload. For a fairly constant, server-type of workload, you can run some benchmarks and see if there is actually any benefit. For a constantly changing, day-to-day computing workload, there's no clear winner.

1

It depends very much on the application, OS, and how it executes its work.

If an application is designed to be single-threaded, no additional cores will help its performance. However, you could run additional applications using the other cores, IF the operating system was smart enough to distribute the work this way. Therefore additional cores may provide a small additional benefit, especially for multiple applications running at once.

Additional cores do not provide more I/O capability. So if an application is mostly I/O bound performance increase from additional cores may not be substantial.

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.