There once was a race between Intel and AMD to see which company could built the first 1 GHz processor. Back in 2000, both companies were desperately trying to out-clock the other. The competition was so fierce that both companies claimed victory: AMD with its Athlon CPU and Intel with its Pentium III chip.
The competition didn’t stop at 1 GHz, as both companies then raced on to be the first to hit 2 and then 3 GHz. Around 2004, something odd happened: while the number of transistors on the CPU continued to increase, processor clock speeds began to flatten. Performance continued to improve, but what was driving the interest in cores over clock speed?
Enter the Multi-Core CPU
The race between Intel and AMD continued, but the game had changed from clock speeds to multi-core chips. Around this time I traded in my single core Intel Pentium III for dual-core AMD chips running at a slower clock speed. Overall stability of my system increased along with performance, but few programs existed that could take advantage of more than a single core.
While some games and a number of post-production tools such as Adobe Premiere are able to take advantage of today’s newest consumer-grade quad and hexa-core CPUs, I wanted to find out under which scenarios multi-core servers make sense to deploy today.
Memory management is critical when managing VMs, and is usually the first resource to become constrained. Using multi-core CPUs provides an increase in memory channels, allowing for large blocks of data to be processed and analyzed. Allowing the processor to access this data from memory instead of the hard drive results in much better performance.
Multi-core servers also allow you to dedicate individual cores to each VM for better performance. Combine the additional memory channels with more cores and you have an environment that can handle the most demanding applications in a VM.
High-performance computing (HPC) refers the practice of taking complex computations and breaking them into smaller pieces. Using software, each piece of the computation can then be solved by CPU cores. It’s almost like taking a supercomputer and breaking it down into smaller, more manageable building blocks that can then be used to solve complex scientific problems.
HPC can also be very computational and memory intensive. Some of the most elaborate and expensive servers we build at Puget Systems are used for HPC, and it’s not uncommon to find servers running AMD quad-Opteron or Intel quad-Xeon processors with support for up to 64 CPUs cores on a single server.
Databases & the Cloud
Databases are tasked with running many tasks simultaneously. The more CPU cores you have the more tasks you can run. Multi-core processors also allow multiple databases to be consolidated onto a single server. Again, the increased memory bandwidth is the primary reason this is possible.
Most database admins will say there’s no such thing as too much memory, and the latest processors from AMD and Intel allow up to 1 TB of memory on a single workstation-class motherboard.
Cloud environments are also transaction heavy, and multi-core processors allow a company to quickly scale up the number of cores during peak computing times. Energy efficiency is also important to cloud environments. Cores can be turned off or on as needed to optimize workloads and reduce energy.
I’m often asked whether Opteron or Xeon is the best processor and my answer is, “It depends.” I know that sounds like a cop-out, but there is no one-size-fits-all answer to the question. Some applications perform better on one platform than the other. But here is some overall guidance when comparing the two processor lines.
AMD Opteron advantages:
- Usually less expensive
- Motherboards tend to be less expensive
- Usually easier to upgrade from one generation to the next (longer socket support)
- Lower power consumption on some of the lower-end models.
Intel Xeon advantages:
- Better single-threaded performance
- Supports servers with up to 8 CPUs instead of 4 for Opteron
- More CPUs mean more RAM per server
- Greater selection of motherboards
Clock speed still plays a role when selecting a processor. Cores are important but they are still only one feature of a modern processor. Determining the number of cores your application supports is critical to matching it to the best processor for your money.
These are just a few of the areas where multi-core CPUs shine, but there are others. And as the software catches up to these powerful and complex processors we’ll certainly see more applications emerge.
Photo credit: Puget Systems