[MPI3 Fortran] [Fwd: Library-based ASYNCHRONOUS I/O and SYNC MEMORY]
Iain Bason
Iain.Bason at Sun.COM
Tue Sep 9 08:13:55 CDT 2008
On Sep 9, 2008, at 8:48 AM, Jeff Squyres wrote:
> Separation and asynchronocity between communication and computation
> is a well-known philosophy (I don't know the first machine that had
> dedicated communication co-processors, but it was many years ago --
> probably more than 15-20?). I'm guessing that it's pretty much
> exactly the same arguments for why Fortran has a built-in
> asynchronous IO library.
Yes, that's elementary. It doesn't answer my question, though. Let
me attempt to rephrase the question.
A programming language allows the programmer to describe what the
program does. All reasonable languages have semantics that are
defined (the definition may be poor, be it's there). The defined
semantics may leave certain decisions up to the compiler (e.g., x+y+z
could be equal to (x+y)+z or x+(y+z) according to the Fortran standard).
We are looking for a way to describe the semantics of MPI_IRECV/
MPI_ISEND/MPI_WAIT (and other similar functions). We all know what
the actual semantics are. My question is do we really need to have
the program describe them precisely? Is there any advantage to
conveying to the compiler that the buffer's contents may change at any
time between an MPI_IRECV call and its corresponding MPI_WAIT call?
Is it not sufficient just to say the MPI_WAIT may be considered to
modify any variable? If that inhibits any optimizations that might
have been performed with more precise information, are those
optimizations actually important?
Iain
More information about the mpiwg-fortran
mailing list