Next: What Does ``No Up: High Performance Fortran Journal Previous: Generalized Data References
We propose that two new directives be added for use within the FORALL construct. !HPFEND INDEPENDENT The two directives must be used in pair. A sub-block of statements parenthesized in the two directives is called an asynchronous sub-block or independent sub-block. The statements that are not in an asynchronous sub-block are in synchronized sub-blocks or non-independent sub-block. The synchronized sub-block is the same as the HPF FORALL construct, and the asynchronous sub-block is the same as the FORALL with the INDEPENDENT directive. Thus, the block FORALL
FORALL (e)
b1
!HPFEND INDEPENDENT
b3
END FORALL
means the same as
FORALL (e)
b1
END FORALL
!HPFINDEPENDENT
FORALL (e)
b2
END FORALL
FORALL (e)
b3
END FORALL
The INDEPENDENT directive indicates to the compiler there is no
dependence and consequently, synchronizations are not necessary.
It is users' responsibility to ensure there is no dependence
between instances in an asynchronous sub-block.