|Volume 7, Issue 1 -
PARALLEL PROGRAMMING ARCHETYPES AND SCIENTIFIC COMPUTING
Mani Chandy, Berna Massingill, Dan Meiron, CRPC, Caltech; Ravi Samtaney, Aeronautics and Applied Mathematics, Caltech
A parallel programming archetype is an abstraction that captures the common features of a class of programs with similar computation and communication structures, and aids the development of parallel applications by providing design methods and code libraries that address the parallel aspects of the application. The CRPC parallel archetypes effort consists of two projects, one dealing with scientific computing and the other with broader classes of problems. This article reports on the first area, which is a long-term collaborative effort headed by Mani Chandy and Dan Meiron.
In concrete terms, an archetype implementation includes tutorial documentation describing the class of programs addressed and how to parallelize them, plus a code library that covers the details of parallelism. With this documentation and code library, application developers new to parallel programming can get parallel applications running quickly without having to master the details of parallel programming.
Investigations to date have focused on the mesh-spectral-splitting archetype, which addresses a range of problems amenable to implementation as Single Program Multiple Data (SPMD) computations. Several applications have been developed or parallelized using a special case of this archetype that focuses strictly on mesh computations, including a two-dimensional computational fluid dynamics code and a three-dimensional electromagnetics code.
Of particular interest is the use of the mesh archetype by a researcher outside the CRPC. Ravi Samtaney, a research fellow in aeronautics and applied mathematics at Caltech, has used the archetype documentation and library to develop a parallel two-dimensional Computational Fluid Dynamics (CFD) application with almost no additional assistance from the CRPC group.
His application deals with the acceleration of a material interface by a shock wave. This acceleration generates an instability known as the Richtmyer-Meshkov instability; his code investigates this instability for very strong shocks, i.e., in hypervelocity environments which exist both in nature (supernovae) and in technological applications (inertial confinement fusion). The computational investigation is based on the numerical simulations of the compressible Euler equations. To model the chemical effects typical of high-enthalphy flows, it employs the Ideal Dissociating Gas (IDG) model. This work has been presented at two conferences and will be the subject of a forthcoming journal paper. The code is estimated to run at six microseconds per cell per time step for 100 processors.
The CRPC group is continuing its investigation of archetypes with a focus on ease of use. For more information about parallel programming archetypes for scientific computing, contact http://www.cs.caltech.edu/~berna/Archetypes.html.
Table of Contents