[Mpi-forum] MPI Ain't and MPI 3.1
nmm1 at cam.ac.uk
Wed Jul 17 07:03:26 CDT 2013
On Jul 16 2013, Jim Dinan wrote:
>I apologize for the long-delayed follow-up from our last meeting on how to
>handle the MPI Aint arithmetic ticket (tt #349). At the last meeting, we
>all agreed that this is an important fix that we would like to get out
>ASAP, but we weren't sure how to do it. I wanted to resume that discussion
>on the mailing list to get broader feedback and help move the discussion
>along in between meetings, if we can.
This isn't about the procedure, but about the proposed solution. I think
that it is a serious mistake, and merely compounds the problems caused by
MPI_BOTTOM. The simplest resolution would be that the conversion functions
would take a window argument, as well, and that the
Aint/address/displacement were required to be associated with that window.
int MPI_Get_disp(const void *location, MPI_Disp *disp, MPI_Win win);
int MPI_Aint_to_disp(MPI_Aint aint, MPI_Disp *disp, MPI_Win win);
int MPI_Disp_to_aint(MPI_Disp disp, MPI_Aint *aint, MPI_Win win);
The point here is that even C still supports segmented and tagged memory
architectures. Currently, they are in abeyance, but they still exist and
they may return to the mainstream any time. The wording in the C (and even
C++) standard is phrased the way it is specifically to allow for such
things. Fortran, of course, has always supported them, and more.
More information about the mpi-forum