|
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.
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:
- Intels 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 AMDs
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.
Read the orginal article: http://www.roguewave.com/blog/homogenous-vs-heterogenous-multi-core-hardware-strategies-part-1/
 |