[MPI3 Fortran] [Fwd: Was ASYNCHRONOUS..., New: ACCESSES ( ) suffix

Bill Long longb at cray.com
Wed Sep 10 13:54:37 CDT 2008



Aleksandar Donev wrote:
> On Wednesday 10 September 2008 11:26, Bill Long wrote:
>   
>>  The message to the compiler (in this example) is that a
>> Call to MPI_Wait may access the actual argument corresponding to the
>> buffer dummy argument in any call to either MPI_ISend or MPI_IRecv that
>> is visible.  This would explicitly suppress the undesired code motion.
>>     
> Answer this simple question:
> Why is this not needed/done for the Fortran WAIT statement?
>   

Simple answer:  The compiler knows what the WAIT statement does and all 
the associated semantics. The compiler also knows which variables are 
'tainted' either by explicit declaration or by inference from looking at 
I/O lists.   In contrast, the compiler knows nothing about MPI_Wait 
except what we tell it.   The point here is to tel what it needs to know.


> Why is MPI_Wait soo different and why does it require this super hideous hacks 
> to make it work?
> Why is a simple barrier to code motion (like WAIT or SYNC MEMORY) sufficient?
> Best,
> Aleks
>
>   

-- 
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