Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1583991.1584049acmconferencesArticle/Chapter ViewAbstractPublication PagesspaaConference Proceedingsconference-collections
research-article

Optimizing transactions for captured memory

Published: 11 August 2009 Publication History

Abstract

In this paper, we identify transaction-local memory as a major source of overhead from compiler instrumentation in software transactional memory (STM). Transaction-local memory is memory allocated inside a transaction, which cannot escape (i.e., is captured by) the allocating transaction. Accesses to such memory do not require calls to STM memory access functions (also called STM barriers). A compiler unaware of that, however, may translate simple memory load/store operations accessing such memory into more expensive STM barriers. This presents us opportunities to improve STM performance. Our measurements with the STAMP benchmark suite (version 0.9.9) revealed that as many as 60% of the STM barriers generated by our baseline compiler can be accesses to captured memory, which include 90% of the write barriers and 45% of the read barriers. We propose runtime and compiler optimizations to elide STM barriers to captured memory. Similar techniques can also be used to elide barriers for accesses to thread-local and read-only data. We implemented those optimizations in the Intel C++ STM compiler. Our experiments with the STAMP benchmark suite on a Intel Dunnington system (with 24 cores in a 4-node SMP system) showed that upto 18% performance improvement could be achieved at 16 threads.

References

[1]
Ali Reza Adl Tabatabai, Brian T. Lewis, Vijay S. Menon, Brian R. Murphy, Bratin Saha, and Tatiana Shpeisman. Compiler and runtime support for efficient software transactional memory. In PLDI 2006.
[2]
Emery D. Berger, Kathryn S. McKinley, Robert D. Blumofe, and Paul R. Wilson. Hoard: a scalable memory allocator for multithreaded applications. SIGPLAN Not., 35(11):117--128, 2000.
[3]
Chi Cao Minh, JaeWoong Chung, Christos Kozyrakis, and Kunle Olukotun. STAMP: Stanford transactional applications for multi-processing. In IISWC, 2008.
[4]
Jong-Deok Choi, Manish Gupta, Mauricio J. Serrano, Vugranam C. Sreedhar, and Samuel P. Midkiff. Escape analysis for Java. In OOPSLA 1999.
[5]
Luke Dalessandro, Virendra J. Marathe, Michael F. Spear, and Michael L. Scott. Capabilities and limitations of library-based software transactional memory in C++. In TRANSACT 2007.
[6]
Dave Dice, Ori Shalev, and Nir Shavit. Transactional locking II. In DISC 2006.
[7]
Guy Eddon and Maurice Herlihy. Language support and compiler optimizations for STM and transactional boosting. In ICDCIT, pages 209--224, 2007.
[8]
Timothy Harris, Mark Plesko, Avraham Shinnar, and David Tarditi. Optimizing memory transactions. In PLDI 2006.
[9]
Maurice Herlihy, Victor Luchangco, Mark Moir, and III William N. Scherer. Software transactional memory for dynamic-sized data structures. In PODC 2003.
[10]
Maurice Herlihy and J. Eliot B. Moss. Transactional memory: architectural support for lock-free data structures. In ISCA 1993.
[11]
Richard L. Hudson, Bratin Saha, Ali-Reza Adl-Tabatabai, and Benjamin C. Hertzberg. McRT-Malloc: A scalable transactional memory allocator. In ISMM 2006.
[12]
Donald E. Knuth. Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition). Addison-Wesley Professional, July 1997.
[13]
Yosef Lev, Mark Moir, and Dan Nussbaum. PhTM: Phased transactional memory. In TRANSACT 2007.
[14]
Yang Ni, Adam Welc, Ali-Reza Adl-Tabatabai, Moshe Bach, Sion Berkowits, James Cownie, Robert Geva, Sergey Kozhukow, Ravi Narayanaswamy, Jeffrey Olivier, Serguei Preis, Bratin Saha, Ady Tal, and Xinmin Tian. Design and implementation of transactional constructs for C/C++. In OOPSLA '08: Proceedings of the 23rd ACM SIGPLAN conference on Object oriented programming systems languages and applications, pages 195--212, New York, NY, USA, 2008. ACM.
[15]
Torvald Riegel, Christof Fetzer, and Pascal Felber. Automatic data partitioning in software transactional memories. In 20th ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), June 2008.
[16]
Bratin Saha, Ali-Reza Adl-Tabatabai, Rick Hudson, Chi Cao Minh, and Benjamin Hertzberg. McRT-STM: A high performance software transactional memory system for a multi-core runtime. In PPoPP 2006.
[17]
Bratin Saha, Ali-Reza Adl-Tabatabai, and Quinn Jacobson. Architectural support for software transactional memory. In MICRO 2006.
[18]
Tatiana Shpeisman, Vijay Menon, Ali-Reza Adl-Tabatabai, Steven Balensiefer, Dan Grossman, Richard L. Hudson, Katherine F. Moore, and Saha Bratin. Enforcing isolation and ordering in STM. In PLDI 2007.
[19]
Richard M. Yoo, Yang Ni, Adam Welc, Bratin Saha, Ali-Reza Adl-Tabatabai, and Hsien-Hsin S. Lee. Kicking the tires of software transactional memory: Why the going gets tough. In SPAA 2008.

Cited By

View all
  • (2022)Using Barrier Elision to Improve Transactional Code GenerationACM Transactions on Architecture and Code Optimization10.1145/353331819:3(1-23)Online publication date: 6-Jul-2022
  • (2020)Improving Transactional Code Generation via Variable Annotation and Barrier Elision2020 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS47924.2020.00107(1008-1017)Online publication date: May-2020
  • (2019)Optimizing Persistent Memory Transactions2019 28th International Conference on Parallel Architectures and Compilation Techniques (PACT)10.1109/PACT.2019.00025(219-231)Online publication date: Sep-2019
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SPAA '09: Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
August 2009
370 pages
ISBN:9781605586069
DOI:10.1145/1583991
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 August 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. runtime optimizations
  2. software transactional memory

Qualifiers

  • Research-article

Conference

SPAA 09

Acceptance Rates

Overall Acceptance Rate 447 of 1,461 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 14 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Using Barrier Elision to Improve Transactional Code GenerationACM Transactions on Architecture and Code Optimization10.1145/353331819:3(1-23)Online publication date: 6-Jul-2022
  • (2020)Improving Transactional Code Generation via Variable Annotation and Barrier Elision2020 IEEE International Parallel and Distributed Processing Symposium (IPDPS)10.1109/IPDPS47924.2020.00107(1008-1017)Online publication date: May-2020
  • (2019)Optimizing Persistent Memory Transactions2019 28th International Conference on Parallel Architectures and Compilation Techniques (PACT)10.1109/PACT.2019.00025(219-231)Online publication date: Sep-2019
  • (2018)On the Efficiency of Transactional Code Generation: A GCC Case Study2018 Symposium on High Performance Computing Systems (WSCAD)10.1109/WSCAD.2018.00037(184-190)Online publication date: Oct-2018
  • (2016)Practical condition synchronization for transactional memoryProceedings of the Eleventh European Conference on Computer Systems10.1145/2901318.2901342(1-16)Online publication date: 18-Apr-2016
  • (2016)Optimizing memory transactions for large-scale programsJournal of Parallel and Distributed Computing10.1016/j.jpdc.2015.12.00189:C(13-24)Online publication date: 1-Mar-2016
  • (2015)Case Study: Using Transactions in MemcachedTransactional Memory. Foundations, Algorithms, Tools, and Applications10.1007/978-3-319-14720-8_20(449-467)Online publication date: 2015
  • (2014)Transactionalizing legacy codeACM SIGARCH Computer Architecture News10.1145/2654822.254196042:1(399-412)Online publication date: 24-Feb-2014
  • (2014)Transactionalizing legacy codeACM SIGPLAN Notices10.1145/2644865.254196049:4(399-412)Online publication date: 24-Feb-2014
  • (2014)Dynamic transaction coalescingProceedings of the 11th ACM Conference on Computing Frontiers10.1145/2597917.2597930(1-10)Online publication date: 20-May-2014
  • Show More Cited By

View Options

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