[MPI3 Fortran] Proposing changes to Fortran 2008

Aleksandar Donev donev1 at llnl.gov
Thu Mar 27 15:31:28 CDT 2008


MPI_ISend has many more issues than MPI_Send. Which one are we discussing?

For MPI_Send, I see no problem with copy in/out, in fact, I see it as 
desirable because the compiler does the work of copying things like columns 
of arrays into contig buffers. Is there a problem with copy in/out and the 
blocking calls?

> The C_LOC functionality is not far away from this requirement
C_LOC exactly satisfies the requirement of no copy in/out and probably should 
be used for MPI_ISend. It requires TARGET, which should in fact be required 
if you are retaining a pointer to an array (even if this pointer is only in C 
and not visible to the Fortran compiler).

> the ASYNCHRONOUS attribute also avoids any copying of the actual argument.
In the case of MPI_ISend even with C_LOC, ASYNCHRONOUS (actually VOLATILE, to 
be exact) is necessary on the array whose values are being modified behind 
the compiler's back. This is independent of the issue of copying.


P.S. John Reid is still the head of the Fortran committee

Aleksandar Donev, Ph.D.
Lawrence Postdoctoral Fellow @ Lawrence Livermore National Laboratory
High Performance Computational Materials Science and Chemistry
E-mail: donev1 at llnl.gov
Phone: (925) 424-6816  Fax: (925) 423-0785
Address: P.O.Box 808, L-367, Livermore, CA 94551-9900
Web: http://cherrypit.princeton.edu/donev

More information about the mpiwg-fortran mailing list