With the recent widespread adoption of multi-core CPUs, a question comes to mind: how does CPU/cores ratio relate to performance?

Which of these is better, how and why?

  • 1 8-core CPU
  • 2 4-core CPUs
  • 4 2-core CPUs

I already know the licensing implications (there are softwares licensed on physical CPUs regardless of actual cores, and others insted that actually care about this), and of course a system with more physical CPU sockets is more customizable and can be expanded more easily; but what I am interested in is the difference in performance between these configurations... if there is any.

  • There is an age old argument about 1 very powerful core vs many smaller but less powerful cores. to this day it depends entirely on the application. You will need to include more information about the kind of services this server will be providing before any answer could be given. – Silverfire Oct 20 '11 at 6:30
  • I'm not talking about 1 4-Ghz CPU vs. 2 2-Ghz CPUs. I'm talking about the same number of cores, at the same speed, but split between a different number of physical processors. – Massimo Oct 20 '11 at 6:33

It depends.

Your question ultimately boils down to memory. As Ben mentioned, whether they communicated via cache or via main memory. However, whether 1x8 or 4x2 is better will depend entirely on your application - on whether it saturates the cache or not.

If the type of workload is largely homogeneous and shares lots of memory, a 1x8 with a large cache will be good. If the workload has many independent dynamic processes, then a 4x2 may be better as there is minimal communication overhead.

Why not look at it in terms of incremental cost benefits?

Anecdote: I've once built a VM host machine with 2x6 processors and seen performance drop dramatically once I cross main memory. i.e. more cores communicating via main memory performs slower than less cores communicating via cache. Each VM was largely doing only one thing.


Looking at your comments about the question, I would say that running at full-tilt, I think 4 2-core CPUs would win due to cache sharing. 1 8-core CPU would have to share the same cache 8 ways as opposed to only 2 ways with 4 CPUs.

Although the cores would take slightly longer to communicate when they are processing, I think this would have less effect than having more cache to share.

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.