[jmm-dev] Sequential Consistency

Paul E. McKenney paulmck at linux.vnet.ibm.com
Mon Feb 24 14:44:25 PST 2014

On Sat, Feb 22, 2014 at 11:58:01AM -0800, Jeremy Manson wrote:
> On Sat, Feb 22, 2014 at 7:59 AM, Doug Lea <dl at cs.oswego.edu> wrote:
> >
> > Another in the continuing series of issues to contemplate:
> >
> > There's a tension between those who believe that all "correct"
> > programs are provably sequentially consistent versus those who
> > consider sequential consistency as a goal only of lock-based programs;
> > not necessarily of those using lock-free techniques and/or are
> > components of distributed systems. (see for example Herlihy & Shavit's
> > "The Art of Multiprocessor Programming"
> > http://store.elsevier.com/The-Art-of-Multiprocessor-
> > Programming/Maurice-Herlihy/isbn-9780080569581/)
> >
> >
> Who falls into the first category?  A "correct" program is one where the
> behavior matches the spec, and if that can be done with non-SC behavior
> (which it often can), then the conversation is over.

Hear, hear!  ;-)

> I think the major limiting factor for volatiles and atomics supporting SC
> (which is how I read what you are asking) is whether it can be done
> reasonably (i.e., with acceptable performance) on the target platforms.  If
> it can, then for everyone's sanity (and in keeping with the desire for Java
> to have somewhat accessible semantics for stuff like this), it makes sense
> to specify them as being SC.  If it can't, then (IMO) the IRIW-alike idioms
> are few and far between enough that it makes no sense to try to decrease
> everyone's performance to support SC for them.

This is my experience as well -- I have seen very few actual algorithms
that relied on SC.

							Thanx, Paul

More information about the jmm-dev mailing list