[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