Memory consistency and process coordination for SPARC v8 multiprocessors (brief announcement)
Authors: Jalal Kawash, Lisa Higham
Venue: Proceedings of the nineteenth annual ACM symposium on Principles of distributed computing (2000)

Weakening the memory consistency model of a multiprocess system improves its performance and scalability. However, these models sacrifice programmability because they create complex behaviors of shared memory. Without the use of expensive, built-in synchronization, these models exhibit poor capabilities to support solutions for fundamental process coordination problems [2]. This leads programmers to aggressively use these forms of synchronization, incurring additional performance burdens on the system. A multiprocessor system constructed from SPARC v8 [6] processors is one example of a system with weak memory consistency.Since use of synchronization primitives deteriorates performance, we are motivated to study the limitations and capabilities of weak memory consistency models without the use of these primitives. Specifically, we want to know which weak memory consistency models have the ability to support solutions to fundamental process coordination problems without the use of explicit synchronization. If the use of explicit synchronization is avoidable, then efficient libraries for certain classes of applications can be built. This would ease the job of distributed application programmers and make their applications more efficient.In the full paper [3], we study the capabilities of the two SPARC memory consistency models Total Store Ordering (TSO) and Partial Store Ordering (PSO) to support solutions to fundamental process coordination problems without resorting to expensive synchronization primitives. To do so, a mathematical description of the behavior of these systems in terms of partial order constraints on possible computations is first derived. Our definitions for TSO and PSO are proven to capture the machine description of the manufacturer. Also, they are expressed as a natural variant of sequential consistency [5], which facilitates the comparison of the SPARC models to several proposed consistency models including Processor Consistency, Causal Consistency, and Java Consistency. The process coordination problems studied in this paper are critical section coordination and producer/consumer coordination. These are fundamental patterns because they exist in a wide range of parallel and distributed applications. We distinguish two variants of producer/consumer coordination whose solution requirements differ: the set and queue variants. Our results show that both TSO and PSO models are incapable of supporting a read/write solution to the critical section problem, but both can support such solutions to some variants of the producer/consumer problem. One earlier attempt to define TSO [4] resulted in a definition that is much stronger than what the SPARC provides and lead to erroneous conclusions about the coordination capabilities of TSO. In fact, we show that any program (with only read/write operations) that is correct for sequential consistency can be compiled into an equivalent program (with only read/write operations) that is correct for this erroneous definition of TSO [3]. To the contrary, this paper proves that read/write operations are insufficient to solve certain coordination problems for TSO and PSO. Another previous definition of the SPARC models [1] was too complicated to be useful to programmers, whereas the definitions here are simple to understand and use. The original axiomatic specifications of TSO and PSO [6] are also complex and are not particularly useful for studying the questions addressed in this paper.