[cpp-threads] Whence Sequential Consistency?
    Jeremy Manson 
    jmanson at cs.umd.edu
       
    Fri Jan 19 22:43:03 GMT 2007
    
    
  
Lawrence Crowl wrote:
> Jeremy Manson <jmanson at cs.umd.edu> writes:
>> So, in short, all you have to do is make sure that your conflicting
>> accesses are ordered by happens-before, and you get sequential
>> consistency as a guarantee of the program.  It is unnecessary to
>> guarantee that individual program instructions (like CAS) provide
>> sequential consistency: only that they provide happens-before.
> 
> So why are we worried about whether or not the atomic operations
> are sequentially consistent?  Shouldn't the discussion be "can
> these primitives be used to build sequentially consistent programs"?
You have hit a very, very important point right on the head.  We have 
hypothesized in Java about whether it is important for volatiles to be 
sequentially consistent.  We have tried to come up with non-contrived 
examples where it matters, but have not been terribly successful.
The point that comes up repeatedly is that sequential consistency is 
easier to explain than IRIW / CCCC, because the explanation is one 
sentence.  This is a nice property.  But no one seems to be able to come 
up with a convincing pattern where it is actually more useful for code 
in practice.  So if it comes down to "easy to explain" versus 
"practical", we will probably have to go with "practical".
					Jeremy
    
    
More information about the cpp-threads
mailing list