[MPI3 Fortran] [Fwd: Library-based ASYNCHRONOUS I/O and SYNC MEMORY]

Aleksandar Donev donev1 at llnl.gov
Tue Sep 9 18:33:53 CDT 2008


On Tuesday 09 September 2008 16:15, Dan Nagle wrote:

> Using asynchronous is wrong because asynchronous already
> has a meaning within the Fortran i/o subsystem, and
> convolving that usage with external libraries seems
> to be A Bad Thing (to me at least).
I claim that the *semantics* of the ASYNCHRONOUS attribute are exactly 
appropriate here. In a sense, the caller of MPI_ISend *cannot* tell the 
difference between the routine starting an async Fortran I/O statement and 
then MPI_Wait containing a Fortran WAIT statement and the case when the 
MPI_ISend calls some C routine that starts modifying the buffer and then some 
C wait routine ends the data transfer.

This statement is irrespective of whether it is appropriate to "convolve" the 
meaning. That is subjective, but the above is simply a technical observation.

> The question is:  How to *connect* the initial call
> with the wait call when the buffer variable doesn't appear
> on the wait call?
If you accept (if not, argue with it) my claim above, then we should follow 
the model of Fortran ASYNC I/O. There is no connection between the initial 
call and the wait call there. There is also no way for a compiler to discern 
such a connection without global program analysis that is likely well beyond 
existing capabilities (or at least implemented ones). So I don't see why one 
should put in such a connection for essentially the identical thing occuring 
via an external library instead of the Fortran RTL.

Best,
Aleks

-- 
Aleksandar Donev, Ph.D.
Lawrence Postdoctoral Fellow @ Lawrence Livermore National Laboratory
High Performance Computational Materials Science and Chemistry
E-mail: donev1 at llnl.gov
Phone: (925) 424-6816  Fax: (925) 423-0785
Address: P.O.Box 808, L-367, Livermore, CA 94551-9900
Web: http://cherrypit.princeton.edu/donev




More information about the mpiwg-fortran mailing list