November 18, 2013

Co-processors

Co-processors date back to before the 1980s, often used as a specialized processor to supplement the CPU, and to increase the overall performance of the computer. Back then, the co-processors were used to augment performance in specific applications, for example, the Intel 8087, which sped up the computer's ability to process floating point operations.

In the 21st century, most co-processors used for arithmetic operations have become redundant, as the computer's CPU has become strong enough to reduce the need for one. However, co-processors in other forms exist in everyday computers, although for other functions. Often, gaming computers have these, existing as your graphics processing unit (GPU) and/or sound card. But how does this relate to supercomputing? Well, gamers know that they'll need a high-end graphics card to reach better performance, as the GPU has more processing capability.



The Tesla K20 GPU co-processor
To figure out what that means, we need to dive into the technicalities of a GPU and CPU. A GPU usually takes upon tasks that are more parallel - that run more processes at once. Since a GPU has many more cores than a CPU, it excels at parallel tasks, often used in supercomputing. NVIDIA first started off in the co-processor business by introducing its Tesla line of GPU co-processors, which are capable of pushing more than one TFLOPS (Trillions of Floating Point Operations Per Second). Back in 1996, the ASCI Red supercomputer was the first to reach this milestone, although requiring 150 square metres, 850 kW of power, and 9,298 CPUs. Now, the same performance can be achieved with a double-slot PCI-e card that draws roughly 200 W of power - that's technology for you!

While these co-processors are quite powerful, they still require their backbone - traditional CPUs. Most HPC (High Performance Computing) CPUs use the x86 architecture, whereas NVIDIA's Tesla GPU co-processors use their CUDA architecture. This means that applications and instructions need to be programmed in two separate languages in order to use the power of the co-processors.

The Xeon Phi co-processor family
Intel, seeing this, introduced their own lineup of co-processors, known as the Xeon Phi family. These co-processors were based off Larrabee, Intel's "failed attempt" at making a GPU, deemed by many news outlets years ago. Now, these co-processors sell at thousands of dollars each. The Xeon Phi family also uses the x86 architecture, which doesn't require re-programming the code for another architecture, as it is the same one. By doing so, it saves time (on the development side) and also ensures more efficiency, as it can be run on the CPU and on the co-processor. As we can see, co-processors greatly augment the ability of supercomputers, by contributing a large amount of computing power in a small package.

Sources: NVIDIA, Intel