[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