Parallel Programming Archetypes
This page was reconstructed following a data loss
(February 1998) and may not be as complete as earlier
versions.
Introduction
A parallel programming archetype, or simply archetype,
is an abstraction
that captures the common features of a class of problems
with similar computational structure and combines them
with a parallelization strategy to produce a pattern of
dataflow and communication.
Such abstractions are useful in application development,
both as a conceptual framework and as a basis for tools
and techniques that facilitate the development process.
In particular, an archetype abstraction can serve as the
basis for a program skeleton and code library,
where the skeleton deals with process creation and interaction
between processes, and the code library encapsulates details
of the interprocess interaction.
If a sequential program fits an archetype, then a parallel
program can be developed by fleshing out the skeleton,
making use of the code library.
The fleshing-out steps deal with defining the
sequential structure
of the processes.
Thus, programmers can focus their attention
primarily on sequential programming issues.
See "Concurrent Program Archetypes" (overview paper),
.ps and
.html
for more information.
Archetypes for Scientific Computing
We have identified
several archetypes useful in scientific computing, including:
- The mesh archetype, which is suitable for grid-based
computations (on 1-, 2-, or 3-dimensional grids)
in which calculation at each point depends
on nearby values.
See
The Mesh Archetype
for more information.
- The spectral archetype, which is suitable for
spectral-methods calculations involving operations
on the rows or columns of a 2-dimensional grid.
See
The Spectral Archetype
for more information.
- The mesh-spectral archetype, which combines and
generalizes the mesh and spectral archetypes to
permit a range of operations on grids.
See
The Mesh-Spectral Archetype
for more information.
Related technical reports
- "Integrating Task and Data Parallelism with the
Collective Communication Archetype"
(K. M. Chandy, R. Manohar, B. L. Massingill, and D. I. Meiron),
Caltech CS-TR-94-08
(.ps).
- "Parallel Programming Archetypes"
(B. L. Massingill and K. M. Chandy),
Caltech CS-TR-96-28
(.ps).