Next: The FORALL Statement
Up: High Performance Fortran Language
Previous: AlignmentDistribution, and
The purpose of the FORALL statement and construct is to provide a
convenient syntax for simultaneous assignments to large groups of array
elements. Such assignments lie at the heart of the data parallel
computations that HPF is designed to express. The multiple assignment
functionality it provides is very similar to that provided by the array
assignment statement and the WHERE construct in Fortran 90. FORALL differs from these constructs in its syntax, which is intended
to be more suggestive of local operations on each element of an array,
and in its generality, which allows a larger class of array sections to
be specified. In addition, a FORALL may call user-defined
functions on the elements of an array, simulating Fortran 90 elemental
function invocation (albeit with a different syntax).
HPF defines a new procedure attribute, PURE, to declare the class
of functions that may be invoked in this way. Both single-statement
and block FORALL forms are defined in this Section, as well as
the PURE attribute and constraints arising from the use of PURE.
HPF also defines a new directive, INDEPENDENT. The purpose of
the INDEPENDENT directive is to allow the programmer to give
additional information to the compiler. The user can assert that no
data object is defined by one iteration of a DO loop and used
(read or written) by another; similar information can be provided about
the combinations of index values in a FORALL statement or
construct. Such information is sometimes valuable to enable compiler
optimizations, but may require knowledge of the application that is
available only to the programmer. Therefore, HPF allows a user to
specify these assertions, on which the compiler may in turn rely in its
translation process. If the assertion is true, the semantics of the
program are not changed; if it is false, the program is not
HPF-conforming and has no defined meaning.
Next: The FORALL Statement
Up: High Performance Fortran Language
Previous: AlignmentDistribution, and
paula@erc.msstate.edu
Thu Dec 8 16:17:11 CST 1994