[MPI3 Fortran] Proposed solution for the volatile buffer problem

Bill Long longb at cray.com
Wed Jan 14 16:54:59 CST 2009

Aleksandar Donev wrote:
>> Secondly, a compiler is allowed to assume that unreferenced parts of an
>> array are invariant, and so may copy more than it needs to - which can
>> sometimes be a lot faster.
> OK, that's a good point in argument of explicitly marking variables 
> that get changed behind the scenes instead of relying on some form of 
> implicit assumptions.

Keep in mind the problem we're trying to solve here.  It is to prevent 
computations involving the "marked" variables from being moved by the 
compiler across a CALL to the wait routine.  So, what is the proposal 
for marked variables (which don't appear as arguments to the relevant 
routines - the ultimate source of the problem)?  Are they temporarily 
volatile across every procedure reference?  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. 


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