[Mpi3-rma] Target displacement sign issue

Dries Kimpe dkimpe at mcs.anl.gov
Tue Aug 28 14:33:33 CDT 2012


* Jeff Hammond <jhammond at alcf.anl.gov> [2012-08-28 14:02:09]:

> Breaking backwards compatibility is worse than whatever portability
> issues you can come up with, especially with something as fundamental
> as MPI_Aint.

Good point. 

Question: do you know of any instances where MPI_Aint is used to hold a
negative value?

Or, even better, if the existing standard specifies, for all use cases of
MPI_Aint, that the value should be non-negative then there should not be
any issue with backwards compatibility when changing MPI_Aint to unsigned?

The 2.2 standard states that MPI_Aint 

"must have the same width and encode address values in the same manner
such that address values in one language may be passed directly to another
language without conversion." (pg 15)

It also says that MPI_Aint is used to represent an 'absolute' address
(even though MPI_BOTTOM indicates the start of the address range).

On pg 18, it says that 'MPI_Aint is defined to be an integer of the size
needed to hold /any valid address/ on the target architecture.'

Also, note that MPI_Aint is used by MPI_GET_ADDRESS.
Meaning the problem is not limited to RMA.

   Dries



More information about the mpiwg-rma mailing list