Everything You Always Wanted to Know About Synchronization but Were Afraid to Ask
📜 Abstract
This paper presents the most exhaustive study of synchronization to date. We span multiple layers, from hardware cache-coherence protocols up to high-level concurrent software. We do so on different types of architectures, from single-socket – uniform and non-uniform – to multi-socket – directory and broadcast-based – many-cores. We draw a set of observations that, roughly speaking, imply that scalability of synchronization is mainly a property of the hardware.
✨ Summary
Summary
The paper provides a cross-layer empirical study of synchronization, evaluating cache-coherence operations, atomic instructions, locks, message passing, and higher-level concurrent software on four many-core platforms. Its central finding is that synchronization scalability is strongly determined by hardware locality: cross-socket communication is substantially more expensive than intra-socket communication, and even modest intra-socket non-uniformity can reduce scalability. The study also reports that no lock algorithm is universally optimal; simple ticket locks generally perform well under low contention, while queue-based, hierarchical, or message-passing approaches can be advantageous under particular high-contention or locality conditions. The authors released SSYNC, including lock implementations, message-passing libraries, and synchronization microbenchmarks. (sigops.org)
Subsequent research has cited the paper as empirical evidence for the effects of cache-coherence costs, NUMA locality, and lock choice. Examples include work on synchronization support for near-data-processing architectures and studies of concurrent hash tables. The paper has also been used in operating-systems and concurrency courses as a comparative reference for lock algorithms and multicore synchronization. These uses indicate influence primarily as a benchmarking and evaluation reference rather than as a single adopted industry standard. (cslab.ece.ntua.gr)