[Mpi3-rma] Target displacement sign issue
dinan at mcs.anl.gov
Tue Aug 28 14:29:01 CDT 2012
Here is the suggested change to address this issue. In the paragraph on
page 425, line 1, add the bracketed sentence:
In the case of a window created with MPI_WIN_CREATE_DYNAMIC, the
target_disp for all RMA functions is the address at the target; i.e.,
the effective window_base is MPI_BOTTOM and the disp_unit is one. [Thus,
for dynamic windows, the target_disp argument to all RMA functions in
interpreted as unsigned.] Users should use MPI_GET_ADDRESS at the target
process to determine the address of a target memory location and
communicate this address to the origin process.
On 8/28/12 9:46 AM, Jim Dinan wrote:
> Hi All,
> Currently, target displacements in put/get/acc/etc are defined to be
> non-negative integers of type, MPI_Aint. MPI_Aint is defined to be a
> signed integer. However, displacements associated with dynamic windows
> are addresses (unsigned) and can range into the space of negative integers.
> It seems like the least impact change would be to add a special case
> that the displacement argument will be interpreted as unsigned for
> dynamic windows. Changing the interface to take an 'unsigned MPI_Aint'
> would be the most clear (and preserve the existing and intended new
> semantics), but would break backward compatibility.
> Interested to hear your thoughts.
More information about the mpiwg-rma