
Design engineers soon will need to bridge the growing gap between hardware reality and software capabilities in the highperformance computing (HPC) realm as the use of multicore microprocessors grows. If your software development or sourcing plans haven’t anticipated these development situations, your applications may have a shorter life than you had planned.
The 2006 version of technical computing “reality” is an inexpensive dual-core processor from AMD or Intel on a desktop system, or a dual- or quad-core RISC processor from Sun or IBM running on a server. In 2007, we should expect to see inexpensive quad-core processors from AMD and Intel, and processors with up to eight or more cores in 2008. These small symmetric multiprocessing (SMP) systems will be a far cry from the proprietary $500,000+ SMP systems of a few years ago. This technology transition has big implications for the “democratization” of computing power. On the horizon are four- to eightcore systems that cost only a few thousand dollars and sit on the desk of every design engineer.
Multicore Optimization
For those who develop and maintain their own applications, the answer is somewhat more complicated. If you plan to use one of the new multicore architectures, substituting calls to serial components with calls to SMP component libraries can provide dramatic improvements in performance, and performance will increase commensurately with the increase in the number of cores available over the next two years. Using OpenMP or Posix threading directives within the application can also provide additional performance, but requires greater expertise.