(j3.2006) [MPI3 Fortran] Feedback from Fortran J3 meeting

Aleksandar Donev donev1
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 
existing codes.

> 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.

Aleks




More information about the J3 mailing list