Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages 2011
DOI: 10.1145/1926385.1926394
|View full text |Cite
|
Sign up to set email alerts
|

Mathematizing C++ concurrency

Abstract: Shared-memory concurrency in C and C++ is pervasive in systems programming, but has long been poorly defined. This motivated an ongoing shared effort by the standards committees to specify concurrent behaviour in the next versions of both languages. They aim to provide strong guarantees for race-free programs, together with new (but subtle) relaxed-memory atomic primitives for highperformance concurrent code. However, the current draft standards, while the result of careful deliberation, are not yet clear and … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
329
1
3

Year Published

2016
2016
2022
2022

Publication Types

Select...
4
2
1

Relationship

2
5

Authors

Journals

citations
Cited by 267 publications
(333 citation statements)
references
References 20 publications
(6 reference statements)
0
329
1
3
Order By: Relevance
“…This increases the demands on compilers that implement these memory models, so it is important to check that our changes do not invalidate existing compilation schemes. To this end, we prove that all of the formalised C11 compilation schemes of which we are aware (namely, those for Power [8] and x86 [7] machines) remain sound after our changes, and we argue informally that our OpenCL changes preserve the soundness of the only formalised OpenCL compilation scheme (namely, that for AMD GPUs [41]). …”
Section: Main Contributionsmentioning
confidence: 74%
See 2 more Smart Citations
“…This increases the demands on compilers that implement these memory models, so it is important to check that our changes do not invalidate existing compilation schemes. To this end, we prove that all of the formalised C11 compilation schemes of which we are aware (namely, those for Power [8] and x86 [7] machines) remain sound after our changes, and we argue informally that our OpenCL changes preserve the soundness of the only formalised OpenCL compilation scheme (namely, that for AMD GPUs [41]). …”
Section: Main Contributionsmentioning
confidence: 74%
“…Correctness in any relaxed memory setting is notoriously evasive; indeed, the subtleties of relaxed memory have previously led to confirmed bugs in language specifications [7,10], deployed processors [1], compilers [27,40] and vendor-endorsed programming guides [3]. The importance of correctness in the context of C11 is well-known.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…Additionally, it defines a threaded concurrency model that communicates via shared memory, and a relaxed, but rather complex, memory model [11]. In contrast to C99, handling concurrency and memory consistency mostly relies on the programmer.…”
Section: C++11mentioning
confidence: 99%
“…It assumes that the programmer can identify variables that should be declared atomic and access it accordingly. However, Batty et al [11] conclude that this model is not clearly defined by the standard, and the corresponding mathematical model might not be 'sufficiently widely accessible' . Because of the complexity of the model, it is unclear whether it defines the weakest (usable) model.…”
Section: Steinke and Nuttmentioning
confidence: 99%