[Mpi-22] MPI_Aint/MPI_ADDRESS_KIND equivalence and ticket #18
Rajeev Thakur
thakur at [hidden]
Mon Mar 9 13:34:13 CDT 2009
Address-sized variables in MPI can be passed from C to Fortran or vice
versa, and I know of no c2f or f2c conversion functions for them. So I think
MPI_Aint and integer (kind=MPI_ADDRESS_KIND) are assumed to be of the same
size at least implicitly.
Rajeev
> -----Original Message-----
> From: mpi-22-bounces_at_[hidden]
> [mailto:mpi-22-bounces_at_[hidden]] On Behalf Of Dave Goodell
> Sent: Friday, March 06, 2009 1:09 PM
> To: MPI 2.2
> Subject: [Mpi-22] MPI_Aint/MPI_ADDRESS_KIND equivalence and ticket #18
>
> At the last meeting in San Jose, Rolf brought up a good point w.r.t.
> ticket #18 [1]. Part of the proposal for ticket #18 is to add
> MPI_AINT and MPI_OFFSET types corresponding to MPI_Aint/
> MPI_ADDRESS_KIND and MPI_Offset/MPI_OFFSET_KIND language types.
> Rolf's point was that it isn't defined in the standard
> whether or not
> MPI_Aint and INTEGER(KIND=MPI_ADDRESS_KIND) are exactly the same
> type. Obviously we cannot define a new predefined datatype
> corresponding to two different language types. I believe
> Rolf's view
> (correct me if I'm misrepresenting you, Rolf) was that the
> forum ought
> to make their equivalence explicit, irrespective of what
> happens with
> ticket #18. I'm ambivalent about this issue, but I need a
> resolution
> on it in order to get #18 into a final voteable state.
>
> So the larger question to the Forum is: Are these types exactly the
> same between the two languages?
>
> Looking at MPICH2 it seems that we try to make them the same
> size but
> there are some convoluted code paths in the build logic that might
> result in different sizes. I would not consider this to be a
> compelling argument that they are permitted to differ because the
> logic in question may simply be buggy or never exercised.
> Does anyone
> have an example from other MPI implementations where the
> types do/may
> differ? Do any Fortran experts out there know of instances where
> MPI_ADDRESS_KIND would be different from MPI_Aint?
>
> As for the impact on ticket #18, there are several ways to deal with
> this:
>
> 1) If the Forum decides that the types are always equivalent,
> add text
> to that effect (probably in a separate ticket) and otherwise stick
> with the current proposal.
> 2) If the Forum decides that the type equivalence is undefined, drop
> the new MPI_AINT/MPI_OFFSET types from the proposal.
> 3) If the Forum decides that the type equivalence is
> undefined, create
> four types instead of just two: MPI_AINT, MPI_OFFSET, MPI_F_AINT,
> MPI_F_OFFSET (or some such names).
> 4) If the Forum decides that the type equivalence is undefined, make
> MPI_AINT/MPI_OFFSET only correspond to the C types.
>
> I'm inclined towards either #1 or #2, depending on what the Forum
> decides about the type equivalence. I also can separate the
> MPI_AINT/
> MPI_OFFSET types out into a separate ticket if this becomes too
> contentious of an issue, but I'd like to keep it together for now
> since the text changes are easier to describe correctly in just one
> place.
>
> -Dave
>
> [1] https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/18
> _______________________________________________
> mpi-22 mailing list
> mpi-22_at_[hidden]
> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-22
>
More information about the Mpi-22
mailing list