SEFeb 26, 2016

The Virtues of Conflict: Analyzing Modern Concurrency

arXiv:1602.08321v1
AI Analysis

This addresses scalability issues in verifying concurrent programs for computer systems researchers and developers, but it is incremental as it builds on existing partial-order methods.

They tackled the problem of verifying weak memory programs on modern multiprocessors, which suffer from state space explosion in traditional analyses, by proposing a conflict-aware, composable semantics based on general event structures, and showed that it outperforms state-of-the-art partial-order approaches on benchmarks.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes