(j3.2006) [MPI3 Fortran] Feedback from Fortran J3 meeting
Wed May 28 12:59:13 EDT 2008
On Wednesday 28 May 2008 09:42, Craig Rasmussen wrote:
> I believe that the MPI Forum could add actual ?
> variable to the MPI_Wait call so that the compiler could have some ?
> information about the begin and end scope of the asynchronous operation.
This is a hack that is recommended in the MPI-2 document (putting fake
procedure calls after the wait to prevent code motion across the wait). It is
still a hack though in the sense that:
1) It requires hiding the content of this fake procedure from the compiler so
it cannot analyze that nothing happens inside it
2) It is not actually guaranteed or prescribed by the standard---the code is
technically illegal in the sense that the standard does not specify its
behavior. Just like multi-threaded programs are. Fortran variables without
some special attributes cannot be modified by external mechanisms. The goal,
I hope, is to bring it into the standard proper with minimal changes to
> But what is the start and what is the finish? ?Perhaps we need ?
> INTENT(ASYNC_BEGIN) and INTENT(ASYNC_END).
I don't see the need here: Since there is no access to the variables
in-between the begin and end all that is needed is to prevent register and
code motion optimizations spanning across the start and end of the operation.
More information about the J3