Re: [MPI3 Fortran] (j3.2006) (SC22WG5.3891) [ukfortran] MPI non-blocking transfers
Aleksandar Donev wrote:
On Thursday 22 January 2009 09:10, Bill Long wrote:
If we use a different name, like ASYNC_EXTERNAL, is there any difference between that and VOLATILE? I suspect not.
Yes, I explained this a long time ago, many times, but we go in circles again. For one thing, VOLATILE has some ill-defined semantics.
Vendors seem to know what to do. The VOLATILE concept is utterly trivial to implement.
For two, VOLATILE disables all optimization.
Only for statements that might involve references or definitions of a volatile variable. The rest of the code can be optimized normally. Which is exactly what we need here.
ASYNCHRONOUS only disables code motion accross waits and certain argument associations (such as more care with copy in/out). The rest of the code can be optimized as usual.
If that's the case, then there is a serious problem with ASYNCHRONOUS, as illustrated by Nick's examples. In most places in a code, VOLATILE and ASYNCHRONOUS have exactly the same effect on optimization. In fact, the simplest implementation of ASYNCHRONOUS that is semantically safe is to make is synonym for VOLATILE.
Surely this is important for a high-performance library like MPI.
The high performance part of MPI occurs inside the library routines. That's unaffected by the declaration of the buffer outside.
The other is that it incorrectly suggests that MPI calls have something to do with I/O which is not the case (except for the actual MPI I/O calls
And I already explained this a long time ago, and even quoted you the Wikipedia definition of I/O. But if you care not to listen, that is fine, let's continue going in circles.
I forgot that I was addressing more than the Fortran list. I meant that MPI has nothing to do with the Fortran concept of I/O (not Wikipedia's). When we're talking about a Fortran's asynchronous attribute, it seems reasonable to relate it to Fortran's concept of I/O. Cheers, Bill
Best, Aleks
_______________________________________________ J3 mailing list [email protected] http://j3-fortran.org/mailman/listinfo/j3
-- Bill Long [email protected] Fortran Technical Support & voice: 651-605-9024 Bioinformatics Software Development fax: 651-605-9142 Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120
participants (1)
-
Bill Long