Next: struct Map
Up: NPAC PCRC Runtime Kernel
Previous: Constructors
An Adlib array is a rectangular distributed array of any rank, whose
elements are partioned or replicated across some set of processes.
The layout of the array is described by an object of type DAD
which contains
-
The rank, R of the array (ie, its number of dimensions).
R is greater than or equal to zero.
-
The process group over which the elements of the array are distributed.
-
A vector of R dimension map objects, describing the shape
of the array, and the mapping of its index space into the dimensions of
of the process group, and the memory strides in the locally-held
segment of the array.
The definition of the array is completed by a local array, or a pointer
to a base address in the memory of each process, where the elements are
actually stored. The type of the array elements is determined by the
type of the local array segment--the DAD itself is blind
to element type.
Note that the Adlib kernel makes no intrinsic assumptions about the
ordering of array elements in local memory. For example, when a new
distributed array is created, the dimension map vectors can set up to describe
the situation where the first or the last dimension is ``most rapidly
varying'' in memory
. Similarly, no
assumption is made that array elements fill a contiguous region of
memory. In Fortran 90 terms, a DAD record can describe an
arbitrary regular section of some parent array.
Guansong Zhang
Fri Oct 9 12:29:23 EDT 1998