[MPI3 Fortran] MPI-2.1: Fortran 90 bindings
Jeff Squyres
jsquyres at cisco.com
Fri Mar 7 06:27:37 CST 2008
On Mar 7, 2008, at 7:01 AM, Harald Klimach wrote:
>> But the type is variable, right? Hence, if you use an explicit size,
>> the *real* size of the buffer (in bytes) is sizeof(type)*size. The
>> "size" parameter is supposed to be specified in bytes, not increments
>> of type size. So I don't think the above binding would yield correct
>> results for non-character types. Right?
> Hm, ok, perhaps this was a bad example, I never used MPI_BUFFER_ATTACH
> and just picked it because it has only two arguments ;)
> MPI_SEND would have been more appropiate.
I think that would work for scalars (heck, you don't even need the
count for a scalar) and for 1D arrays. But it seems problematic for
2D and above.
>> Actually, MPI explicitly allows you to mix-n-match the types. :-\
> Could you please point me to, where this is stated?
It is required that the send and receive buffers have compatible type
maps. See MPI-1:4.1:
"The type-matching conditions for the collective operations are more
strict than the corresponding conditions between sender and receiver
in point-to-point. Namely, for collective operations, the amount of
data sent must exactly match the amount of data specified by the
receiver. Distinct type maps (the layout in memory, see Sec. Derived
datatypes ) between sender and receiver are still allowed."
> I can't find it.
> All I see is mentioning of that it should be allowed to have different
> types on separate calls. Which is also true for functions with one
> choice argument. Of course this may be due to my humble understanding
> of MPI.
> Anyway this may be a detail which needs clarification?
--
Jeff Squyres
Cisco Systems
More information about the mpiwg-fortran
mailing list