|Volume 7, Issue 1 -
Steve Roy Karmesin, Caltech; John Reynders, Los Alamos National Laboratory
Particle-in-Cell (PIC) simulation is a standard simulation technique used to solve a variety of problems in science and industry, particularly problems in plasma physics. The advent of distributed computing platforms holds the promise of performing these simulations at greater resolution in a shorter amount of time. This team has implemented several three-dimensional PIC codes on a variety of different CRPC-distributed platforms including the Intel iPSC/860, Thinking Machines CM-200, Intel Delta, and Thinking Machines CM-5.
In many cases, hand-coded assembler kernels were implemented to optimize performance. The parallel architectures under investigation demonstrate similar issues in the implementation of PIC algorithms. Almost all of the computational time is spent in the interprocessor communication of the particle data and memory access during particle-grid interpolation. These computational concerns are complicated by the algorithmic issues of particle simulation on irregular geometries and load balancing of inhomogeneous systems. With all of these issues considered and a code developed for a specific parallel architecture, a significant performance gain is achieved over serial supercomputers. The communication protocols, however, differ between most distributed computing platforms, making the transfer to another target parallel architecture a daunting prospect.
The group's research into code portability and development of a standard interface for PIC code development has focused on the use of object- oriented (OO) class libraries that abstract the issues of architecture- dependent networks and PIC interpolation templates. The OO approach to code design allows the development of algorithms that are independent of network designs and node-CPU architecture. The top-level abstractions that represent the physics kernel of the simulation remain untouched because the code is installed on a new distributed platform. This is accomplished by a new "communicate" object that handles device-specific communication and node- architecture issues. This enables code reuse and development well beyond the half-life of the latest supercomputer, a half-life that is usually shorter than the time it takes to debug a code.
Currently, these libraries are being extended to include arbitrary rectilinear and triangular meshes with adaptive and re-zoning capability. The generic nature of this PIC Class library will be useful to researchers in a wide range of areas such as heliospheric study, fusion research, suspension flows, vortex behavior, and molecular dynamics.
Table of Contents