Processors


A core component of a server is its processor, the CPU. This can be a single processor or multiple processors on the same system.

It selection really depends on the applications it should run. Due to constant innovations in both hardware and software, this remains a challenge each year. Not only does it require to understand which use cases need to be optimized for, but requires keeping track of a multitude of new hardware offerings each year by each vendor. Marketing terms also can add confusion to the mix.

Hardware Vendor Comparison Websites

One set of tools that can be used for navigating this jungle are comparison websites that each vendor provides. Here are two website that both Intel and AMD have help browse their product catalog and compare them.

Intel

Access the specifications of all available Intel processor and compare them

AMD

Comparison tool that links to full specification of each processor

CPU Performance

Advances in processing power no longer come from increasing the clock speed of a processor. Instead the hardware capabilities, such as the number of CPU cores, the cache sizes and specialized units are becoming more important.

This is because we have reached a physical limit with processors. Clock speeds currently do not pass the 5Ghz limit, due to thermal limites. Modern processors instead have more cores and hardware features.

Processor Clock vs Core Count

One relationship between processor clock and core counts it to be aware that more cores mean more active area on a chip. More active area means more heat is produced. This in turn, lowers the clock speed of the processor.

../_images/cores_maxfreq.png

Processors often distinguish between their base clock frequency and their turbo boost frequency. The first is the minimum operating frequency of the processor, while the later is the maximum frequency a single CPU core can sustain for a short period of time. These higher frequencies are only supported until the CPU temperature forces the cores to throttle to stay within their temperature envelope.

High Core Count: Influence to Memory Bandwidth

Another relationship is the influence of the core count to the available memory bandwidth. The more cores a CPU has, the more they will content for the available memory bandwidth.

The memory bandwidth of a CPU is limited by the amount of memory channels it provides. And because accessing main memory is orders of magnitudes slower than the caches on a processor, the amount of L1, L2 and L3 caches can make a significant impact on your performance.

Due to these factor, it may happen that your many-core CPU performs much worse when using all cores, than will less. E.g., you might find that even though you have a 14 core processor, one already saturates the available memory bandwith with 8 active cores. That means, when selecting a processor for a particular type of application it is essential to know if it is compute bound or limited by the memory bandwidth. It doesn’t make sense to invest in many more cores, if the bottleneck is memory bandwidth. Instead it is better to have less cores with higher clocks.

Note

While it helps to review benchmark websites and read reviews, the best way to ensure a selected CPU is the best for an application is to ask hardware partners to obtain access to a test system. Many major vendors provide access to hardware for potential customers to allow them to test drive them.

Sockets

Since the memory bandwidth of a CPU is limited by its available memory channels, one simple way to increase the bandwidth is to use more CPU sockets. Each CPU has its own independent memory channels that can be used at the same time. As long as an application can take advantage of this memory locality, it can increase the available bandwidth.

../_images/single_socket.png

1 Socket

../_images/dual_socket.png

2 Sockets

Should the application however, use a lot of memory that is connected to another processor, its limiting factor will be the number of inter-socket connections.

On intel platforms this is the number of UPI links, on AMD this is called the InfinityFabric.

../_images/socket.png

2 Socket System

../_images/quad_socket.png

4 Socket System

This number of inter socket connections also limits the use of processors in multi-socket settings. Some processors can only be used for single socket systems, other support up to 2, 4, or 8 sockets thanks to their available links.