[Mpi-forum] Discussion points from the MPI-<next> discussion today
jedbrown at mcs.anl.gov
Sat Sep 22 15:00:04 CDT 2012
On Sat, Sep 22, 2012 at 10:17 AM, N.M. Maclaren <nmm1 at cam.ac.uk> 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.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the mpi-forum