[MPI3 Fortran] Proposed solution for the volatile buffer problem

Bill Long longb at cray.com
Wed Jan 14 17:18:12 CST 2009

Aleksandar Donev wrote:
> On Wednesday 14 January 2009 14:54, Bill Long wrote:
>> How would the compiler deal
>> with a pointer that is associated with one of the marked variables?
>>  It seems like there will be a lot of text, in addition to a new
>> attribute/statement to get this to work.
> Nick and I both have claimed, and still claim, that this is no different 
> from ASYNCHRONOUS I/O done in Fortran. If there are additional issues 
> they exist for both fortran I/O and external data transfer.
> Aleks

Well, of course you can both be wrong. :)  The main difference is 
exactly the question I asked above.  With asynchronous, we have a WAIT 
statement in the language which specifically points to the line in the 
program across which tainted code should not move.  With MPI, there is 
no identification of the boundaries, so you either make such an 
identification (my proposal), or you have to assume every call is 
suspect - the point above.  If you modify the asynchronous attribute to 
be effective at every call boundary, rather than just at wait 
statements, then you have inflicted an unnecessary performance hit on 
its intended use with I/O.  It would be much better (and less confusing) 
to come up with a different attribute name for what you want.


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