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_[hidden]
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
|