[MPI3 Fortran] (j3.2006) (SC22WG5.3891) [ukfortran] MPI non-blocking transfers
Bill Long
longb at cray.com
Thu Jan 22 12:59:27 CST 2009
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
> J3 at j3-fortran.org
> http://j3-fortran.org/mailman/listinfo/j3
>
--
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120
More information about the mpiwg-fortran
mailing list