[MPI3 Fortran] Proposing changes to Fortran 2008
Aleksandar Donev
donev1 at llnl.gov
Thu Mar 27 15:31:28 CDT 2008
Hi,
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.
Best,
Aleks
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