On Sep 11 2012, Jeremiah Willcock wrote:
On Tue, 11 Sep 2012, Jeff Squyres (jsquyres) wrote:
FWIW, we chose the copying language not because of the c language, but rather because we have to explain that the MPI data type is applied, and that seemed far easier to explain against a (virtual) contiguous buffer.
Maybe the issue is that I'm not a Fortran programmer, but the copying language has always been confusing to me (its effect on what user-defined datatypes need to look like is another thing I asked about before). Am I to understand the interface as something like this?
For purposes of interpreting derived datatypes and other information in communication operations, array slices are treated as if they are stored contiguously in memory. I.e., it is "as if" some kind of magic memory remapping occurs by the MPI implementation that maps the user's non-contiguous array into a contiguous one without copying the elements (in either direction).
No, that's not the reason, because your wording is considerably closer to the Fortran model than the current wording. What you have said is a fairly precise paraphrase of what sequence association is. Realistically, I agree with your concerns - this is confusing. Your addendum would help, as would adding the phrase "at an unspecified time between the initial call and the wait". Personally, I would do both. Regards, Nick Maclaren.