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

Aleksandar Donev donev1
Tue May 27 17:48:26 EDT 2008


On Tuesday 27 May 2008 12:44, Dan Nagle wrote:
> The programmer wants the don't-ask/don't-touch to apply from the ?
> transfer call
> to the wait call, which may be in different routines. 
Just apply the same rules as we apply to Fortran async I/O. The ASYNC 
attribute must be given to the actual and the dummy in both the routine that 
starts the transfer and the scoping unit where that routine is called, and 
the same for ending the transfer, *and* also for anything that gets executed 
in-between the start and end of the transfer (the way I read it, even if the 
code does not touch the variable in question, the ASYNC attribute must be 
there, explicitly or implicitly). We cannot expect magic to happen and 
suddenly all compilers to perform human-grade interprocedural analysis. The 
duty falls on the programmer.

> Our standard should be
> consistent with the MPI specification.
But the MPI specification is an onus on the programmer not to interfere with 
the data transfer while it is in progress. All we (J3) need is to make sure 
the compiler does not do things behind the back of the programmer (like move 
code, do copying, store things in temporary storage, etc.) that the 
programmer cannot control or know of, so as to at least give the careful 
programmer a chance to do it right.

If you want to help the bad programmer by adding some extra compile time 
checks that is also good, but the first thing is to just give *a* way to do 
it in a portable and safe manner.

> This is for the C TR, not f08.
Either way----the goal is not to bloat the TR to become a new F2012 standard, 
but remain focused and small, IMO.


More information about the J3 mailing list