next up previous contents
Next: General Definitions Up: NPAC PCRC Runtime Kernel Previous: Introduction

Process Groups

The Adlib idea of a process group is analogous to the MPI idea of group. The Adlib version is more specialized. Adlib groups are frequently created and modified in the runtime. For efficiency it is important to provide a specialized lightweight representation--one cannot afford to import the general group technology of MPI. For example, Adlib needs the structure of multi-dimensional grids without the overheads involved in building an MPI Cartesian communicator.

The most direct analogue of the MPI Cartesian communicator is the Adlib process array, represented by a Procs object. Even in Adlib, constructing a process array is a relatively expensive procedure. It involves initializing several sub-structures. The general group object of Adlib--class Group--has a much more streamlined implementation. Group is essentially a handle class. Its objects contain a pointer to a parent Procs object plus a few extra words defining a subset of that Cartesian grid. Group objects are created, copied, changed, and discarded freely within the library code. They can be handled with similarly free rein in user code.





Guansong Zhang
Fri Oct 9 12:29:23 EDT 1998