ORCA: Ordering-free Regions for Consistency and Atomicity
Writing correct synchronization is one of the main difficulties of multithreaded programming. Incorrect synchronization causes many subtle concurrency errors such as data races and atomicity violations. Previous work has proposed stronger memory consistency models to rule out certain classes of conc...
Main Authors: | , , , , |
---|---|
Format: | Text |
Language: | unknown |
Published: |
ScholarlyCommons
2016
|
Subjects: | |
Online Access: | https://repository.upenn.edu/cis_reports/1013 https://repository.upenn.edu/cgi/viewcontent.cgi?article=2060&context=cis_reports |
id |
ftunivpenn:oai:repository.upenn.edu:cis_reports-2060 |
---|---|
record_format |
openpolar |
spelling |
ftunivpenn:oai:repository.upenn.edu:cis_reports-2060 2023-05-15T17:53:01+02:00 ORCA: Ordering-free Regions for Consistency and Atomicity DeLozier, Christian Peng, Yuanfeng Eizenberg, Ariel Lucia, Brandon Devietti, Joe 2016-04-28T07:00:00Z application/pdf https://repository.upenn.edu/cis_reports/1013 https://repository.upenn.edu/cgi/viewcontent.cgi?article=2060&context=cis_reports unknown ScholarlyCommons https://repository.upenn.edu/cis_reports/1013 https://repository.upenn.edu/cgi/viewcontent.cgi?article=2060&context=cis_reports Technical Reports (CIS) Computer Engineering Computer Sciences text 2016 ftunivpenn 2021-01-05T06:54:23Z Writing correct synchronization is one of the main difficulties of multithreaded programming. Incorrect synchronization causes many subtle concurrency errors such as data races and atomicity violations. Previous work has proposed stronger memory consistency models to rule out certain classes of concurrency bugs. However, these approaches are limited by a program’s original (and possibly incorrect) synchronization. In this work, we provide stronger guarantees than previous memory consistency models by punctuating atomicity only at ordering constructs like barriers, but not at lock operations. We describe the Ordering-free Regions for Consistency and Atomicity (ORCA) system which enforces atomicity at the granularity of ordering-free regions (OFRs). While many atomicity violations occur at finer granularity, in an empirical study of many large multithreaded workloads we find no examples of code that requires atomicity coarser than OFRs. Thus, we believe OFRs are a conservative approximation of the atomicity requirements of many programs. ORCA assists programmers by throwing an exception when OFR atomicity is threatened, and, in exception-free executions, guaranteeing that all OFRs execute atomically. In our evaluation, we show that ORCA automatically prevents real concurrency bugs. A user-study of ORCA demonstrates that synchronizing a program with ORCA is easier than using a data race detector. We evaluate modest hardware support that allows ORCA to run with just 18% slowdown on average over pthreads, with very similar scalability. Text Orca University of Pennsylvania: ScholaryCommons@Penn |
institution |
Open Polar |
collection |
University of Pennsylvania: ScholaryCommons@Penn |
op_collection_id |
ftunivpenn |
language |
unknown |
topic |
Computer Engineering Computer Sciences |
spellingShingle |
Computer Engineering Computer Sciences DeLozier, Christian Peng, Yuanfeng Eizenberg, Ariel Lucia, Brandon Devietti, Joe ORCA: Ordering-free Regions for Consistency and Atomicity |
topic_facet |
Computer Engineering Computer Sciences |
description |
Writing correct synchronization is one of the main difficulties of multithreaded programming. Incorrect synchronization causes many subtle concurrency errors such as data races and atomicity violations. Previous work has proposed stronger memory consistency models to rule out certain classes of concurrency bugs. However, these approaches are limited by a program’s original (and possibly incorrect) synchronization. In this work, we provide stronger guarantees than previous memory consistency models by punctuating atomicity only at ordering constructs like barriers, but not at lock operations. We describe the Ordering-free Regions for Consistency and Atomicity (ORCA) system which enforces atomicity at the granularity of ordering-free regions (OFRs). While many atomicity violations occur at finer granularity, in an empirical study of many large multithreaded workloads we find no examples of code that requires atomicity coarser than OFRs. Thus, we believe OFRs are a conservative approximation of the atomicity requirements of many programs. ORCA assists programmers by throwing an exception when OFR atomicity is threatened, and, in exception-free executions, guaranteeing that all OFRs execute atomically. In our evaluation, we show that ORCA automatically prevents real concurrency bugs. A user-study of ORCA demonstrates that synchronizing a program with ORCA is easier than using a data race detector. We evaluate modest hardware support that allows ORCA to run with just 18% slowdown on average over pthreads, with very similar scalability. |
format |
Text |
author |
DeLozier, Christian Peng, Yuanfeng Eizenberg, Ariel Lucia, Brandon Devietti, Joe |
author_facet |
DeLozier, Christian Peng, Yuanfeng Eizenberg, Ariel Lucia, Brandon Devietti, Joe |
author_sort |
DeLozier, Christian |
title |
ORCA: Ordering-free Regions for Consistency and Atomicity |
title_short |
ORCA: Ordering-free Regions for Consistency and Atomicity |
title_full |
ORCA: Ordering-free Regions for Consistency and Atomicity |
title_fullStr |
ORCA: Ordering-free Regions for Consistency and Atomicity |
title_full_unstemmed |
ORCA: Ordering-free Regions for Consistency and Atomicity |
title_sort |
orca: ordering-free regions for consistency and atomicity |
publisher |
ScholarlyCommons |
publishDate |
2016 |
url |
https://repository.upenn.edu/cis_reports/1013 https://repository.upenn.edu/cgi/viewcontent.cgi?article=2060&context=cis_reports |
genre |
Orca |
genre_facet |
Orca |
op_source |
Technical Reports (CIS) |
op_relation |
https://repository.upenn.edu/cis_reports/1013 https://repository.upenn.edu/cgi/viewcontent.cgi?article=2060&context=cis_reports |
_version_ |
1766160761805078528 |