[Mpi3-rma] Target displacement in dynamic windows

Jim Dinan dinan at mcs.anl.gov
Mon Sep 17 16:12:19 CDT 2012


Hi All,

In today's meeting, we arrived at the following approach to addressing 
the target displacements issue for dynamic windows:

The MPI 3.0 errata should include the following two statements:

1. For dynamic windows, the target_disp argument to RMA communication 
operations is not restricted to non-negative values.

2. Users are cautioned that displacement arithmetic can overflow in 
variables with MPI_Aint type and result in unexpected values on some 
platforms.  This issue will be addressed in a future version of MPI.

In MPI 3.1, we will look at two possible mechanisms for providing safe 
offset arithmetic:

1. MPI_Get_pointer(MPI_Aint address, void *ptr), which will allow a user 
to convert between addresses and pointers.

2. MPI_Auint -- an address integer which can represent the full range of 
MPI_Aint as a positive integer.  This could be an unsigned integer, but 
for Fortran compatibiliy, it may need to be a singed integer that's 
larger than MPI_Aint.  The following conversion functions would be provided:

MPI_Get_auint(MPI_Aint addr, MPI_Auint *uaddr)
MPI_Get_aint(MPI_Auint uaddr, MPI_Aint *addr)

Please send comments.  Thanks,

  ~Jim.



More information about the mpiwg-rma mailing list