Re: [MPI3 Fortran] MPI buffer arguments - void and call-by-reference
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 [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