Homogenous vs. heterogenous multi-core: hardware strategies (Part 1)
By Patrick Leonard, VP Engineering & Product Strategy
All of the major computer hardware vendors have been moving to multi-core CPUs for several years now, creating the situation that we refer to as the Multi-core Dilemma, which I have written about for several years. Recently, more choices for parallel hardware have become available for enterprise applications. This will lead to some great opportunities but will also require tricky decisions of software development organizations.
Some of the new multi-core hardware will look more homogeneous, like a group of CPUs. Some of the new multi-core hardware will start to look more heterogeneous, like a CPU surrounded by different specialized cores like GPUs (graphical processing units) and others. Both approaches are going to benefit the industry on the whole, but there are pros and cons for each that should be factored into your software development planning. This is my breakdown of the hardware vendors’ strategy.
Intel and Sun are pursuing the homogeneous CPU multi-core strategy:
- Intel’s Larrabee project is a many-core CPU strategy that they argue will reduce (or eliminate) the need to use separate GPUs and other accelerators for general-purpose computing, although it seems likely that it could bear some similarities to GPUs in the areas of floating point and vector operations. One of the main advantages of this approach is that it leverages the existing X86 instruction set. Not everyone loves the X86 instruction set, but there are certainly huge benefits to keeping the existing toolchains (compilers, debuggers, profilers) that are already in place. At Rogue Wave, we have tested multi-core Xeon systems with our Hydra product and see very good scalability with this approach for common business applications.
- Sun recently released Niagara2, their follow up to the industry-leading Niagara multi-core server.
IBM, AMD and nVidia are taking the heterogeneous approach:
- AMD, with their purchase of ATI, added GPU hardware to their offering, and has put “stream computing” and “accelerated computing” (formerly known as “Fusion”) at the center of their strategy, and has partnered with Rogue Wave as part of this strategy. The vision here is basically fusion of CPU and specialized “accelerators” so that the hardware is more tuned to different use cases. For example, CPUs are great at time slicing and scheduling, while GPUs are great at processing math in parallel. AMD recently made a public embrace of the nascent OpenCL standard as a programming model for GPU.
- IBM, in partnership with Sony and Toshiba, has brought the CellBE processor to market. The basic idea here is similar to AMD’s accelerated computing: specialized hardware tuned to different use cases all on a single chip.
- nVidia is focused on the GPU. Focus has a lot of advantages; nVidia is ahead of AMD in getting GPU into the mainstream market (although this is still very early stage) and has a more robust API and tool environment with CUDA. Many people in both industry and academic areas have reported significant throughput increases using nVidia GPUs for complex compute-intensive problems that are capable of running in a massively parallel environment. Rogue Wave is also working closely with nVidia and we have seen excellent performance using their hardware for compute-intensive parallel problems.
All of these strategies are pursuing a similar goal: increased throughput through parallel hardware. All of them will require changes to existing software to take advantage of this increased compute power. All of them will also require software developers to think differently about how they design software in the future.
Del.icio.us | Technorati | Digg | Slashdot
