Aleksandar Donev wrote:
> 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?
>
Yes, if derived MPI datatypes are used.
>
>> 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 requirement of target attribute is not really acceptable from the
MPI standard; for example I would
expect that that MPI_Isend (C_LOC(buf(1000:2000)), ...) would not be
allowed.
Best regards
Hubert
|