Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages 2016
DOI: 10.1145/2837614.2837616
|View full text |Cite
|
Sign up to set email alerts
|

A concurrency semantics for relaxed atomics that permits optimisation and avoids thin-air executions

Abstract: Despite much research on concurrent programming languages, especially for Java and C/C++, we still do not have a satisfactory definition of their semantics, one that admits all common optimisations without also admitting undesired behaviour. Especially problematic are the "thin-air" examples involving high-performance concurrent accesses, such as C/C++11 relaxed atomics. The C/C++11 model is in a per-candidate-execution style, and previous work has identified a tension between that and the fact that compiler o… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
19
0

Year Published

2016
2016
2021
2021

Publication Types

Select...
5
3
2

Relationship

2
8

Authors

Journals

citations
Cited by 53 publications
(19 citation statements)
references
References 23 publications
0
19
0
Order By: Relevance
“…We have begun to see a new generation of models with the explicit aim of disallowing out-ofthin-air while preserving efficient compilation schemes Pichon-Pharabod and Sewell 2016;Podkopaev et al 2018]. As these models become more mature, it may be possible to use aspects of them to disallow our out-of-thin-air executions.…”
Section: Related Workmentioning
confidence: 99%
“…We have begun to see a new generation of models with the explicit aim of disallowing out-ofthin-air while preserving efficient compilation schemes Pichon-Pharabod and Sewell 2016;Podkopaev et al 2018]. As these models become more mature, it may be possible to use aspects of them to disallow our out-of-thin-air executions.…”
Section: Related Workmentioning
confidence: 99%
“…developed RC11, a repaired version of C/C++11, and established (by pen-and-paper proof) the correctness of the suggested compilation schemes to x86-TSO, POWER and ARMv7. Beyond (R)C11, however, there are a number of other proposed higher-level semantics, such as JMM [Manson et al 2005], OCaml [Dolan et al 2018], Promise , LLVM [Chakraborty and Vafeiadis 2017], Linux kernel memory model [Alglave et al 2018], AE-justification [Jeffrey and Riely 2016], Bubbly [Pichon-Pharabod and Sewell 2016], and WeakestMO [Chakraborty and Vafeiadis 2019], for which only a handful of compilation correctness results have been developed.…”
Section: Introductionmentioning
confidence: 99%
“…For higher-level languages such as C/C++ [16] only non-atomic accesses and the sequential consistency and release/acquire fragments are well-understood. High-performance algorithms, however, also involve relaxed 'atomics' and 'consume' atomics, for which there still is not an accepted high-level language semantics [15,27,29,38]. Hence, in practice programmers often write code that does not follow the C/C++ concurrency model, relying instead on the compiled code to provide stronger guarantees, e.g.…”
Section: Introductionmentioning
confidence: 99%