A promising semantics for relaxed-memory concurrency

Jeehoon Kang, Chung Kil Hur*, Ori Lahav, Viktor Vafeiadis, Derek Dreyer

*Corresponding author for this work

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

99 Scopus citations

Abstract

Despite many years of research, it has proven very difficult to develop a memory model for concurrent programming languages that adequately balances the conflicting desiderata of programmers, compilers, and hardware. In this paper, we propose the first relaxed memory model that (1) accounts for a broad spectrum of features from the C++11 concurrency model, (2) is implementable, in the sense that it provably validates many standard compiler optimizations and reorderings, as well as standard compilation schemes to x86-TSO and Power, (3) justifies simple invariant-based reasoning, thus demonstrating the absence of bad "out-of-thin-air" behaviors, (4) supports "DRF" guarantees, ensuring that programmers who use sufficient synchronization need not understand the full complexities of relaxed-memory semantics, and (5) defines the semantics of racy programs without relying on undefined behaviors, which is a prerequisite for applicability to type-safe languages like Java. The key novel idea behind our model is the notion of promises: a thread may promise to execute a write in the future, thus enabling other threads to read from that write out of order. Crucially, to prevent out-of-thin-air behaviors, a promise step requires a threadlocal certification that it will be possible to execute the promised write even in the absence of the promise. To establish confidence in our model, we have formalized most of our key results in Coq.

Original languageEnglish
Title of host publicationPOPL 2017 - Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages
EditorsAndrew D. Gordon, Giuseppe Castagna
PublisherAssociation for Computing Machinery
Pages175-189
Number of pages15
ISBN (Electronic)9781450346603
DOIs
StatePublished - 1 Jan 2017
Externally publishedYes
Event44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017 - Paris, France
Duration: 15 Jan 201721 Jan 2017

Publication series

NameConference Record of the Annual ACM Symposium on Principles of Programming Languages
ISSN (Print)0730-8566

Conference

Conference44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL 2017
Country/TerritoryFrance
CityParis
Period15/01/1721/01/17

Funding

FundersFunder number
SamsungSRFC-IT1502-07
Horizon 2020 Framework Programme
European Research Council683289
Korea Foundation for Advanced Studies

    Keywords

    • C++11
    • Operational semantics
    • Weak memory models

    Fingerprint

    Dive into the research topics of 'A promising semantics for relaxed-memory concurrency'. Together they form a unique fingerprint.

    Cite this