[MPI3 Fortran] MPI buffer arguments - void and call-by-reference
Bill Long
longb at cray.com
Tue Feb 17 13:52:27 CST 2009
Aleksandar Donev wrote:
> Bill Long wrote:
>> On the surface, the main area of difference between VOLATILE and
>> ASYNCHRONOUS is that a standard-conforming program is not allowed to
>> improperly reference or define an asynchronous variable in a part of
>> the code where it is subject to asynchronous activity.
> There is nothing "on the surface" about this---it is a core and
> important difference as I already explained. Just like coarrays are
> rather distinct from VOLATILEs, so are targets of async I/O. I don't
> care if Cray's compiler treats them the same internally, that is a
> quality of implementation issue. But the semantics are rather different.
>
The "On the surface" part was explained in the sentence that followed
the one you quoted. Unlike ASYNCHRONOUS, a VOLATILE variable may be
referenced or defined at the same time as when it is being affected by
some other agent. However, if you, indeed, don't code any such
references or definitions (i.e. follow the asynchronous coding rules),
then it does not really matter whether the variable is declared VOLATILE
or ASYNCHRONOUS.
Cheers,
Bill
--
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