[MPI3 Fortran] Feedback from Fortran J3 meeting

Craig Rasmussen crasmussen at lanl.gov
Tue May 27 10:43:06 CDT 2008


Two weeks ago I attended the Fortran J3 standards meeting where I  
discussed with them the issues surrounding new Fortran MPI bindings.   
They were very receptive to our needs and instructed me to write a J3  
paper in response (attached).  In summary, J3 will try to get changes  
made in the Fortran standard so that we won't need to use CLOC(buffer)  
for a void* buffer argument.  J3 still hasn't decided the best way to  
do this but the likely favorite is a new type, TYPE(*), as an  
interoperable type with void*.

J3 also decided that the way to limit copyin/copyout semantics and  
code motion in asynchronous MPI calls is to use the volatile attribute  
on both Fortran actual and dummy arguments.  The performance effects  
of volatile could be limited with the use of the new F2008 block  
construct.  For example,


     real, dimension(100) :: buffer

     BEGIN BLOCK
         VOLATILE :: buf
         err = MPI_Irecv(buf, ..., req)
         .
         .
         err = MPI_Wait(req, ...)
     END BLOCK

The interface for MPI_Irecv would have something like

     TYPE(*), volatile :: buf

Cheers,
Craig

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 08-185r1.txt
URL: <http://lists.mpi-forum.org/pipermail/mpiwg-fortran/attachments/20080527/81e70eb7/attachment.txt>
-------------- next part --------------





More information about the mpiwg-fortran mailing list