On Jul 16 2013, Jim Dinan wrote: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. E.g.:
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.
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.
Regards,
Nick Maclaren.
_______________________________________________
mpi-forum mailing list
mpi-forum@lists.mpi-forum.org
http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum