Visible to the public The Virtues of Conflict: Analysing Modern Concurrency

TitleThe Virtues of Conflict: Analysing Modern Concurrency
Publication TypeConference Paper
Year of Publication2016
AuthorsNarayanaswamy, Ganesh, Joshi, Saurabh, Kroening, Daniel
Conference NameProceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
PublisherACM
Conference LocationNew York, NY, USA
ISBN Number978-1-4503-4092-2
Keywordscomposability, compositionality, Computing Theory, Computing Theory and Composabilty, Concurrency, pubcrawl, Software, verification, weak consistency models
Abstract

Modern shared memory multiprocessors permit reordering of memory operations for performance reasons. These reorderings are often a source of subtle bugs in programs written for such architectures. Traditional approaches to verify weak memory programs often rely on interleaving semantics, which is prone to state space explosion, and thus severely limits the scalability of the analysis. In recent times, there has been a renewed interest in modelling dynamic executions of weak memory programs using partial orders. However, such an approach typically requires ad-hoc mechanisms to correctly capture the data and control-flow choices/conflicts present in real-world programs. In this work, we propose a novel, conflict-aware, composable, truly concurrent semantics for programs written using C/C++ for modern weak memory architectures. We exploit our symbolic semantics based on general event structures to build an efficient decision procedure that detects assertion violations in bounded multi-threaded programs. Using a large, representative set of benchmarks, we show that our conflict-aware semantics outperforms the state-of-the-art partial-order based approaches.

URLhttp://doi.acm.org/10.1145/2851141.2851165
DOI10.1145/2851141.2851165
Citation Keynarayanaswamy_virtues_2016