Re: [Mpi-forum] Discussion points from the MPI-<next> discussion today
On Sat, Sep 22, 2012 at 10:17 AM, N.M. Maclaren <[email protected]> wrote:
You have been given clear references to the sequence point rules, which make it clear that there must be a sequence point between updates. There is and can be no such sequence point when a location is updated by passive one-sided communication and is later used in the process that owns the data. Muttering about fences is irrelevant, because the same applies even when you have them. The other MPI facilities were carefully designed to ensure that there IS such a sequence point.
The same point applies to multithreaded programming, see Boehm's classic paper. And yet such multithreaded software underlies such core infrastructure as our operating systems kernels and high-performance databases. It is why C11 and C++11 have a memory model, allowing such necessary synchronization without everyone adopting inline assembly or compiler extensions. I fail to see how fences are irrelevant. They can obviously be used incorrectly, but ensuring a partial order on observations of memory operations is exactly what is needed to ensure correctness.
participants (1)
-
Jed Brown