Moving Scientific Codes to Multicore Microprocessor CPUs

The IBM Cell processor represents the first and most extreme of a new generation of multicore CPUs. For scientific codes that can be formulated in terms of vector computing concepts, as far as we know, the Cell is the most rewarding. In this article, we present a method for implementing numerical algorithms for scientific computing so that they run efficiently on the Cell processor and other multicore CPUs. We present our method using the piecewise-parabolic method (PPM) gas dynamics algorithm but believe that many other algorithms could benefit from our approach. Nevertheless, the code transformations are difficult to perform manually, so we are undertaking an effort to build simplified tools to assist in at least the most tedious of the code transformations involved.