Heterogeneous computing, where hardware vendors mix a variety of processors (graphics processors, CPUs, embedded chips or DSPs) on a server to increase energy efficiency and processing speed, will become a reality in the data center in the next decade, says an IBM executive. Such arrangements increase complexity and can cause headaches for developers and customers, but cloud computing could alleviate some of those problems.
“The cloud could make heterogeneous computing possible,” says Tom Bradicich, fellow and VP of Systems and Technology Group at IBM, who spoke with me yesterday about the changes IBM is seeing in server design. Commodity boxes packed with CPUs are less compelling, and hybrid computing is on the rise (although hybrid servers are still very small number of systems today). Packing servers with multiple CPUs is like throwing a team of day laborers at building a house. They’ll get the job done, but there’s likely a better way to divvy up the job among a smaller number of experts, who can do it with less wasted time and energy.
IBM makes one of these “expert” chips, called the Cell, which it’s pushing into data centers and high-performance computing. Other chip vendors such as Texas Instruments or Tensilica, which are pushing DSPs for specialty computing, and Nvidia, which is pushing GPUs would agree. Even data center operators are experimenting with different CPUs for different tasks, to create a custom workflows that save energy.
The downsides of such customized machines are the upfront price and the difficulty of tweaking software to run on them. However, with the cost of energy becoming such a growing concern among data center operators, paying more up front for an energy-efficient server has become more acceptable. The software troubles can be offset by closely working with chipmakers that are offering software development kits or tools. And, one day, Bradicich thinks the cloud will help.
Bradicich says he is working on a program that would let users define their workloads; the program would then offer up an optimized arrangement of processors for the job. The next step for a technology vendor is to ensure that software could then provision the most appropriate hardware automatically in the cloud. The other necessary item for clouds to enable seamless hybrid computing, is a layer of software built on top of the cloud so the user can run an application without worrying if the code is designed to run on the underlying processors.