1 Quad core CPU vs 4 single core CPU

Is it better to have a physical server with 1 Quad core CPU or 4 single core CPU?

Since this is a physical CPU I would guess it's best to have the 1 Quad core CPU since the cores are all internal and can communicate faster with each other than 4 single core CPU which are external to each other and therefore cannot communicate as quickly.  

Is this logic correct?

Now if we apply this same question to a VMware server does it matter whether we setup the server with 1 Quad core CPU or 4 single core CPU?

Since these virtual CPU settings are all done in software does the concept of internal and external CPU no longer apply and therefore it makes no difference when allocating virtual server CPU resources?
Who is Participating?
Lee W, MVPConnect With a Mentor Technology and Business Process AdvisorCommented:
And don't forget - Microsoft licenses most products by the physical CPU, so from a licensing/performance perspective, a single (or dual) quad core will be MUCH cheaper on licenses than a 4-8 physical CPUs.
Dave BaldwinFixer of ProblemsCommented:
I could be wrong but I don't think there is any common software where the cores communicate directly with each.  It is normal that cores are allocated to run common software that for the most part does not know about multiple cores.  And I suspect that even on server tasks that are assigned to different cores, communication is usually through shared memory and not internal to the CPU cores.

I think the biggest benefit of multiple cores is that they are able to use the system more efficiently and more cost effectively.
Avinash21Connect With a Mentor Commented:

yes logically its correct , and it should work better than single core processor. But you should be careful about CPU scheduling, when your provisioning the VM's.

Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

Taking your question, it suggests that your options are for one current/recent multi-core CPU based server or use an older 5-6 year old multi-processor single core server.

Performance of a server for a task is based on the combination of all the hardware such that the processor is unlikely to be the bottleneck.
The construct of the multi-core CPU with the level 1, level 2 and level 3 cache
CPU/core to level 1 is fastest, to level 2 is faster to level 3 slower

A server these days will often come with at least two multi-core processors.
NumbidConnect With a Mentor Commented:
Multiple cores consumes less power, perfs are ~equal at same frequency.
Be careful with ram position on motherboard slots if dual channel is used

The logic is near enough correct. Cores/processors don't communicate directly with each other but they do sometimes need to access the same memory locations and if CPU1 has just updated that memory then CPU2's cache will be stale. The shorter the data paths the quicker cache-miss can be resolved. See http://en.wikipedia.org/wiki/Non-uniform_memory_access for a brief description.

With something like VMware which is NUMA aware it will try to avoid cache misses by trying to make sure no two cores access the same memory but it's easiest for it to do that if you don't allocate multiple vCPUs unless absolutely necessary.
dalvaAuthor Commented:
I think I confused everyone when I used the example of a physical server cpu choices in trying to set the scenario for the actual question dealing with vmWare cpu choices.

My question:
When setting the guest virtual server cpu choices I can set as 1 CPU with 4 cores (using the cpuid.coresPerSocket option) or 4 CPU with 1 core each.

Which is the best choice or does it matter?
In a VM, if licensing is an issue, leew's advise should be taken.
VM is a schedule within a schedule. i.e. the host resources are allocated as needed to the VMs/guest os.

Create identical VMS one with 4 single core cpus and then one multi-core CPU and run banchmark to see which performs under the specified usage.
dalvaAuthor Commented:
I have continued to search the Internet for answers and have come across these:

This link appears to answer the question by implying it makes no difference whether using 1 CPU with 4 cores or 4 CPU with 1 core.

leew answer above stating the deciding factor may be software licensing that determines how the CPU's are defined is very important and valid point.

Configuring Multicore Virtual CPUs



VMWare CPU/Core allocation

This quote from the above link:
Chris8446 Jan 5, 2012 at 8:23 AM
"We just had a week long VMWare optimization training course at work (instructed by folks from VMWare) and I can verify what you have quoted from their documentation: 1 vCPU is the best option for almost all cases. Adding more vCPUs adds nothing but more over head and if the VM is requesting 2 or 4 CPUs and only 1 core is available, then it gets 0 CPUs until the full amount is available."

Unless there are further comments, I'll close the question and try to allocate points fairly on Friday.
>This link appears to answer the question by implying it makes no difference whether using 1 CPU with 4 cores or 4 CPU with 1 core.

No, it implies there is no performance difference between 1 *virtual* CPU with 4 *virtual* cores... There's a big difference between real CPUs and vCPUs.
dalvaAuthor Commented:
You are correct in clarifying this is in reference to virtual CPUs.

My original intent was to learn if there was a difference between using 1 vCPU with 4 cores or 4 vCPU with 1 core each.

In this case the differentiator would be the type of application or OS licensing being used as leew pointed out.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.