Originally by jhammond on 2015-08-24 15:34:41 -0500
Problem11.7.2 Ordering says:
MPI specifies ordering between accumulate operations from one process to the same (or overlapping) memory locations at another process on a per-datatype granularity.
This seems to say that ordering is required between overlapping windows, which is a horrible semantic. We need to add a "per-window" caveat here.
Later, we talk about overlapping memory regions, rather than locations, which is confusing:
MPI does not provide any guarantees for accesses or updates from different origin processes to overlapping target memory regions."
What is a memory region anyways? Is it a window? Is it a set of memory locations?
And to be clear, I think I know what we mean in the RMA chapter, but others may not.
SolutionThis text in MPI 3.1,
Accumulate calls enable element-wise atomic read and write to remote memory locations. MPI specifies ordering between accumulate operations from one process to the same (or overlapping) memory locations at another process on a per-datatype granularity.
should become
Accumulate calls enable element-wise atomic read and write to remote memory locations. MPI specifies ordering between accumulate operations acting on the same window from one process to the same (or overlapping) memory locations at another process on a per-datatype granularity. Operations on a window are not ordered with respect to operations on any other windows.
This should be an errata, because this is the obvious intent of the existing text and no users should have written code that depends upon ordering of operations acting on multiple windows.
Originally by jhammond on 2015-08-24 15:34:41 -0500
Problem11.7.2 Ordering says:
MPI specifies ordering between accumulate operations from one process to the same (or overlapping) memory locations at another process on a per-datatype granularity.
This seems to say that ordering is required between overlapping windows, which is a horrible semantic. We need to add a "per-window" caveat here.
Later, we talk about overlapping memory regions, rather than locations, which is confusing:
MPI does not provide any guarantees for accesses or updates from different origin processes to overlapping target memory regions."
What is a memory region anyways? Is it a window? Is it a set of memory locations?
And to be clear, I think I know what we mean in the RMA chapter, but others may not.
SolutionThis text in MPI 3.1,
Accumulate calls enable element-wise atomic read and write to remote memory locations. MPI specifies ordering between accumulate operations from one process to the same (or overlapping) memory locations at another process on a per-datatype granularity.
should become
Accumulate calls enable element-wise atomic read and write to remote memory locations. MPI specifies ordering between accumulate operations acting on the same window from one process to the same (or overlapping) memory locations at another process on a per-datatype granularity. Operations on a window are not ordered with respect to operations on any other windows.
This should be an errata, because this is the obvious intent of the existing text and no users should have written code that depends upon ordering of operations acting on multiple windows.