A distributed array is a collective array shared
by a number of processes. Like an ordinary array, a distributed array
has some index space and stores a collection of elements of fixed
type. Unlike an ordinary array, the index space and associated
elements are scattered across the processes that share the array.
The communication patterns implied by data-parallel languages like HPF
can be complex. Moreover, it may be hard for a compiler to create all
the low-level MPI calls to carry out these communications. Instead,
the compiler may be implemented to exploit higher-level libraries
which directly manipulate distributed array data. Like the
run-time libraries used for memory management in sequential
programming languages, the library that a data parallel compiler uses for
managing distributed arrays is often called its run-time library.