2

I found this site to compare CPU's. http://www.cpubenchmark.net/high_end_cpus.html

What wasn't clear is how the benchmark for multiple core processors is calculated. If one CPU has 4 cores (such as Intel Core i7 which comes in 2, 4, and 6 core versions: http://en.wikipedia.org/wiki/Intel_Core_i7#Core_i7), does that mean that the benchmark should be double that of the version that has 2 cores (assuming the same clock frequency)?

1 Answer 1

1

This is a fair question, but with no good answer. In the benchmark wars the individual manufacturers will will throw as many cores/processors/CPUs at the problem as they can be effective with. But there's always (except in some very weird circumstances) a "law of diminishing return" -- the second core will only add 60-80%, the third core less than that, etc. (And this assumes a problem that is sufficiently multi-threaded to actually make use of the added cores.)

So you can't look at a given benchmark and assume that twice as many cores will provide twice the performance. In fact, in some cases you could double the number of cores and actually reduce performance. Achieving good performance in a highly multi-threaded application is somewhere between an art and black magic.

(I'll add that this is one reason why manufacturers like to increase clock speed rather than add more cores/CPUs -- performance tends to scale better/more predictably with increased clock speed than it does with added cores/CPUs.)

2
  • Interesting. I gather that the benchmark must have some multithreading programming, because otherwise multiple cores would not increase the benchmark result. So what is the methodology/process of creating a benchmark that can take advantage of an any given number of cores?
    – B Seven
    Mar 20, 2012 at 23:27
  • 1
    There are dozens of different benchmarks with different characteristics. Some are simple things like doing the same mathematical operations over and over again. These don't "scale" to multiple processors, of course (nor are they very realistic). Others do something similar but simply spread the work among multiple threads. These produce unrealistically good results for multiple processors. The best take some sort of "real world" application and pare it down (eg, remove the user interactions) -- these are the most realistic, but still may be a poor predictor of performance for your app. Mar 20, 2012 at 23:56

Not the answer you're looking for? Browse other questions tagged .