Skip to main content
Kent Academic Repository

Clarifying and compiling C/C++ concurrency: from C++11 to POWER

Batty, Mark and Memarian, Kayvan and Owens, Scott and Sarkar, Susmit and Sewell, Peter (2012) Clarifying and compiling C/C++ concurrency: from C++11 to POWER. In: Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages. POPL Principles of Programming Languages . ACM, New York, USA, pp. 509-520. ISBN 978-1-4503-1083-3. (doi:10.1145/2103656.2103717) (KAR id:50268)

Abstract

The upcoming C and C++ revised standards add concurrency to the languages, for the first time, in the form of a subtle *relaxed memory model* (the *C++11 model*). This aims to permit compiler optimisation and to accommodate the differing relaxed-memory behaviours of mainstream multiprocessors, combining simple semantics for most code with high-performance *low-level atomics* for concurrency libraries. In this paper, we first establish two simpler but provably equivalent models for C++11, one for the full language and another for the subset without consume operations. Subsetting further to the fragment without low-level atomics, we identify a subtlety arising from atomic initialisation and prove that, under an additional condition, the model is equivalent to sequential consistency for race-free programs.

Item Type: Book section
DOI/Identification number: 10.1145/2103656.2103717
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 75 Electronic computers. Computer science
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Mark Batty
Date Deposited: 03 Nov 2015 08:27 UTC
Last Modified: 16 Nov 2021 10:20 UTC
Resource URI: https://kar.kent.ac.uk/id/eprint/50268 (The current URI for this page, for reference purposes)

University of Kent Author Information

  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.