Bounding data races in space and time

We propose a new semantics for shared-memory parallel programs that gives strong guarantees even in the presence of data races. Our local data race freedom property guarantees that all data-race-free portions of programs exhibit sequential semantics. We provide a straightforward operational semantics and an equivalent axiomatic model, and evaluate an implementation for the OCaml programming language. Our evaluation demonstrates that it is possible to balance a comprehensible memory model with a reasonable (no overhead on x86, ~0.6% on ARM) sequential performance trade-off in a mainstream programming language.

[1]  Shaked Flur,et al.  Simplifying ARM concurrency: multicopy-atomic axiomatic and operational models for ARMv8 , 2017, Proc. ACM Program. Lang..

[2]  Jeremy Manson,et al.  The Java memory model , 2005, POPL '05.

[3]  Ori Lahav,et al.  Taming release-acquire consistency , 2016, POPL.

[4]  Peter Sewell,et al.  The Problem of Programming Language Concurrency Semantics , 2015, ESOP.

[5]  Jade Alglave,et al.  Fences in Weak Memory Models , 2010, CAV.

[6]  Jade Alglave,et al.  Understanding POWER multiprocessors , 2011, PLDI '11.

[7]  William Pugh Fixing the Java memory model , 1999, JAVA '99.

[8]  Satish Narayanasamy,et al.  A case for an SC-preserving compiler , 2011, PLDI '11.

[10]  Jeehoon Kang,et al.  A promising semantics for relaxed-memory concurrency , 2017, POPL.

[11]  Hans-Juergen Boehm,et al.  How to Miscompile Programs with "Benign" Data Races , 2011, HotPar.

[12]  George A. Constantinides,et al.  Automatically comparing memory consistency models , 2017, POPL.

[13]  Satish Narayanasamy,et al.  DRFX: a simple and efficient memory model for concurrent programming languages , 2010, PLDI '10.

[14]  Viktor Vafeiadis,et al.  Common Compiler Optimisations are Invalid in the C11 Memory Model and what we can do about it , 2015, POPL.

[15]  Hans-Juergen Boehm,et al.  Outlawing ghosts: avoiding out-of-thin-air results , 2014, MSPC@PLDI.

[16]  Francesco Zappa Nardelli,et al.  86-TSO : A Rigorous and Usable Programmer ’ s Model for x 86 Multiprocessors , 2010 .