Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Inferring locks for atomic sections

Published: 07 June 2008 Publication History

Abstract

Atomic sections are a recent and popular idiom to support the development of concurrent programs. Updates performed within an atomic section should not be visible to other threads until the atomic section has been executed entirely. Traditionally, atomic sections are supported through the use of optimistic concurrency, either using a transactional memory hardware, or an equivalent software emulation (STM).
This paper explores automatically supporting atomic sections using pessimistic concurrency. We present a system that combines compiler and runtime techniques to automatically transform programs written with atomic sections into programs that only use locking primitives. To minimize contention in the transformed programs, our compiler chooses from several lock granularities, using fine-grain locks whenever it is possible.
This paper formally presents our framework, shows that our compiler is sound (i.e., it protects all shared locations accessed within atomic sections), and reports experimental results.

References

[1]
Phoenix compiler infrastructure. http://research.microsoft.com/phoenix/.
[2]
Colin Blundell, E. Lewis, and Milo Martin. Subtleties of transactional memory atomicity semantics. IEEE Computer Architecture Letters, 5(2), 2006.
[3]
Brendan Burns, Kevin Grimaldi, Alexander Kostadinov, Emery D. Berger, and Mark D. Corner. Flux: a language for programming high-performance servers. In Proceedings of the annual conference on USENIX ?06 Annual Technical Conference, pages 13--13, 2006.
[4]
Chi Cao Minh, Martin Trautmann, JaeWoong Chung, Austen McDonald, Nathan Bronson, Jared Casper, Christos Kozyrakis, and Kunle Olukotun. An effective hybrid transactional memory system with strong isolation guarantees. In Proceedings of the International Symposium on Computer Architecture, Jun 2007.
[5]
Luis Ceze, Pablo Montesinos, Christoph von Praun, and Josep Torrellas. Colorama: Architectural support for data-centric synchronization. In Proceedings of the International Symposium on High Performance Computer Architecture, pages 133--144, 2007.
[6]
Sigmund Cherem, Trishul Chilimbi, and Sumit Gulwani. Inferring locks for atomic sections. Technical Report MSR-TR-2007-111, MSR, August 2007.
[7]
Dave Dice, Ori Shalev, and Nir Shavit. Transactional locking ii. In Proceedings of the 20th International Symposium on Distributed Computing (DISC), Stockholm, Sweeden, September 2006.
[8]
Michael Emmi, Jeffrey S. Fischer, Ranjit Jhala, and Rupak Majumdar. Lock allocation. In Proceedings of the ACM Symposium on the Principles of Programming Languages, 2007.
[9]
Keir Fraser and Tim Harris. Concurrent programming without locks. ACM Transactions on Computer Systems, 25(2), 2007.
[10]
Richard L. Halpert, Christopher J. F. Pickett, and Clark Verbrugge. Component-based lock allocation. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques, September 2007.
[11]
Lance Hammond, Vicky Wong, Mike Chen, Brian D. Carlstrom, John D. Davis, Ben Hertzberg, Manohar K. Prabhu, Honggo Wijaya, Christos Kozyrakis, and Kunle Olukotun. Transactional memory coherence and consistency. In Proceedings of the International Symposium on Computer Architecture, 2004.
[12]
Maurice Herlihy and J. Eliot B. Moss. Transactional memory: architectural support for lock-free data structures. In Proceedings of the International Symposium on Computer Architecture, San Diego, CA, 1993.
[13]
Michael Hicks, Jeffrey S. Foster, and Polyvios Prattikakis. Lock inference for atomic sections. In ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing, June 2006.
[14]
Benjamin Hindman and Dan Grossman. Atomicity via source-tosource translation. In ACM SIGPLAN Workshop on Memory Systems Performance and Correctness, October 2006.
[15]
R. Lorie J. Gray and G.F. Putzolu. Granularity of locks in a shared database. In Proceedings of International Conference on Very Large Databases, 1975.
[16]
R. Lorie J. Gray, G.F. Putzolu, and I.L. Traiger. Granularity of locks and degrees of consistency. In Modeling in Data Base Management Systems, G.M. Nijssen ed., North Holland Pub., 1976.
[17]
V. J. Marathe, M. F. Spear, C. Heriot, A. Acharya, D. Eisenstat, W. N. Scherer III, and M. L. Scott. Lowering the overhead of software transactional memory. In ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing, Jun 2006.
[18]
V. J. Marathe, M. F. Spear, C. Heriot, A. Acharya, D. Eisenstat, W. N. Scherer III, and M. L. Scott. Lowering the overhead of software transactional memory. In ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing, Jun 2006.
[19]
T. Reps, S. Horowitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In Proceedings of the ACM Symposium on the Principles of Programming Languages. ACM, January 1995.
[20]
B. Saha, A. Adl-Tabatabai, R. L. Hudson, C. Cao Minh, and B. Hertzberg. Mcrt-stm: a high performance software transactional memory system for a multi-core runtime. In Proceedings of the ACM SIGPLAN symposium on Principles and practice of parallel programming, pages 187--197, 2006.
[21]
Nir Shavit and Dan Touitou. Software transactional memory. In Proceedings of the ACM symposium on Principles of Distributed Computing, 1995.
[22]
Bjarne Steensgaard. Points-to analysis in almost linear time. In Proceedings of the ACM Symposium on the Principles of Programming Languages, St. Petersburg Beach, FL, Jan 1996.
[23]
Joseph Uniejewski. SPEC Benchmark Suite: Designed for today?s advanced systems. SPEC Newsletter Vol 1, Issue 1, SPEC, Fall 1989.
[24]
Mandana Vaziri, Frank Tip, and Julian Dolby. Associating synchronization constraints with data in an object-oriented language. In Proceedings of the ACM Symposium on the Principles of Programming Languages, January 2006.

Cited By

View all
  • (2022)Synthesizing fine-grained synchronization protocols for implicit monitorsProceedings of the ACM on Programming Languages10.1145/35273116:OOPSLA1(1-26)Online publication date: 29-Apr-2022
  • (2021)Grafs: declarative graph analyticsProceedings of the ACM on Programming Languages10.1145/34735885:ICFP(1-32)Online publication date: 19-Aug-2021
  • (2021)Finer-LRU: A Scalable Page Management Scheme for HPC Manycore Architectures2021 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS49936.2021.00065(567-576)Online publication date: May-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 43, Issue 6
PLDI '08
June 2008
382 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/1379022
Issue’s Table of Contents
  • cover image ACM Conferences
    PLDI '08: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation
    June 2008
    396 pages
    ISBN:9781595938602
    DOI:10.1145/1375581
    • General Chair:
    • Rajiv Gupta,
    • Program Chair:
    • Saman Amarasinghe
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 07 June 2008
Published in SIGPLAN Volume 43, Issue 6

Check for updates

Author Tags

  1. atomic sections
  2. concurrency
  3. static lock inference

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)4
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Synthesizing fine-grained synchronization protocols for implicit monitorsProceedings of the ACM on Programming Languages10.1145/35273116:OOPSLA1(1-26)Online publication date: 29-Apr-2022
  • (2021)Grafs: declarative graph analyticsProceedings of the ACM on Programming Languages10.1145/34735885:ICFP(1-32)Online publication date: 19-Aug-2021
  • (2021)Finer-LRU: A Scalable Page Management Scheme for HPC Manycore Architectures2021 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS49936.2021.00065(567-576)Online publication date: May-2021
  • (2020)Symbolic Reasoning for Automatic Signal PlacementACM SIGOPS Operating Systems Review10.1145/3421473.342148254:1(64-76)Online publication date: 31-Aug-2020
  • (2020)Towards generating thread-safe classes automaticallyProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416625(943-955)Online publication date: 21-Dec-2020
  • (2018)Lock-Free Transactional Transformation for Linked Data StructuresACM Transactions on Parallel Computing10.1145/32096905:1(1-37)Online publication date: 13-Jun-2018
  • (2017)iSelfACM Transactions on Sensor Networks10.1145/312104913:4(1-22)Online publication date: 26-Sep-2017
  • (2017)Inferring Clothing Insulation Levels Using Mechanisms of Heat TransferACM Transactions on Sensor Networks10.1145/310513613:4(1-27)Online publication date: 26-Sep-2017
  • (2017)Streaming Tree TransducersJournal of the ACM10.1145/309284264:5(1-55)Online publication date: 29-Aug-2017
  • (2017)Tracking Human Motions in PhotographingACM Transactions on Sensor Networks10.1145/308557813:4(1-37)Online publication date: 26-Sep-2017
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media