next up previous contents
Next: class Procs Up: Process Groups Previous: Process Groups

General Definitions

Initial process group: The set processes on which an Adlib program is initiated.

Active process group: The set of processes notionally sharing the local thread of control. This may be the initial process group or it may be an arbitrary subset of the initial process group. When an Adlib program starts the active process group is the initial process group.

The logical active process group may be changed by operations that cause some processors to skip a block of code (leaving the remaining processors active for that block), or cause the current active process group to be partitioned into a set of smaller groups, with each group acting independently for some time.

Every process executing an Adlib program must maintain a static data structure, apg, describing the current active process group. This variable is read by collective functions in the library to determine which processes are cooperating in the operation. If the logical active process group changes, the variable apg must be updated (see section 2.7) before invoking a collective operation. During the library initialization procedure, apg is set to a value describing the initial process group.

Collective object: A collection of similar objects, one in every process from a particular group, which can also be viewed as a single logical entity.

Collective operation: An operation executed cooperatively by all members of the active process group. Typically this will take the form of a call to the same function with the same arguments. In this context two arguments are ``the same'' if they are simple expressions with the same value, or are references to local components of the same collective object.

A collective operation may or may not involve synchronization between members of the active process group. In general the programmer should work on the (worst case) assumption that synchronization is implied. If any member of the active process group fails to engage in a collective operation that others are executing, or executes collective operations in a different order to other members of the group, the program is liable to fail.

Examples of collective operations are constructors for collective objects and collective communication operations.

Process array: Some subset of the initial process group, organized in a Cartesian grid.

Coordinate: Dimensions of a process array are labelled by coordinates.

Process group: In general, either a process array, or some slice of a process array defined by uniquely fixing the coordinate in one or more of its dimensions.

Process id: An identifier relative to a particular process groupgif. If the size of the group is P, the id is in the range tex2html_wrap_inline14049 . Relative to a one-dimensional process array, the value of the process id coincides with the value of the unique coordinate. The id relative to the initial process group is also called the absolute process id.


next up previous contents
Next: class Procs Up: Process Groups Previous: Process Groups

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