skip to main content
10.1145/1950365.1950373acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
research-article

Hybrid NOrec: a case study in the effectiveness of best effort hardware transactional memory

Published: 05 March 2011 Publication History

Abstract

Transactional memory (TM) is a promising synchronization mechanism for the next generation of multicore processors. Best-effort Hardware Transactional Memory (HTM) designs, such as Sun's prototype Rock processor and AMD's proposed Advanced Synchronization Facility (ASF), can efficiently execute many transactions, but abort in some cases due to various limitations. Hybrid TM systems can use a compatible software TM (STM) in such cases.
We introduce a family of hybrid TMs built using the recent NOrec STM algorithm that, unlike existing hybrid approaches, provide both low overhead on hardware transactions and concurrent execution of hardware and software transactions. We evaluate implementations for Rock and ASF, exploring how the differing HTM designs affect optimization choices. Our investigation yields valuable input for designers of future best-effort HTMs.

References

[1]
A.-R. Adl-Tabatabai and T. Shpeisman (Eds.). Draft Specification of Transactional Language Constructs for C. research.sun.com/scalable/pubs/C++transactional-constructs-1.0.pdf, Aug. 2009. Version 1.0.
[2]
A.-R. Adl-Tabatabai, B. T. Lewis, V. Menon, B. R. Murphy, B. Saha, and T. Shpeisman. Compiler and Runtime Support for Efficient Software Transactional Memory. In ACM SIGPLAN Conf. on Programming Language Design and Implementation, Jun. 2006.
[3]
Advanced Micro Devices. Advanced Synchronization Facility: Proposed Architectural Specification. Publication #45432, rev. 2.1, developer.amd.com/assets/45432-ASF_Spec_2.1.pdf, Mar. 2009.
[4]
C. S. Ananian, K. Asanovic, B. C. Kuszmaul, C. E. Leiserson, and S. Lie. Unbounded Transactional Memory. In 11th Intl. Symp. on High-Performance Computer Architecture, Feb. 2005.
[5]
C. Blundell, J. Devietti, E. C. Lewis, and M. M. K. Martin. Making the fast case common and the uncommon case simple in unbounded transactional memory. SIGARCH Comput. Archit. News, 35: 24--34, June 2007.
[6]
C. Blundell, E. C. Lewis, and M. M. K. Martin. Subtleties of Transactional Memory Atomicity Semantics. Computer Architecture Letters, 5 (2), Nov. 2006.
[7]
t al.(2008)Cao Minh, Chung, Kozyrakis, and Olukotun}minh-iiswc-2008C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford Transactional Applications for Multi-processing. In IEEE Intl. Symp. on Workload Characterization, Sep. 2008.
[8]
S. Chaudhry, R. Cypher, M. Ekman, M. Karlsson, A. Landin, and S. Yip. Rock: A High-Performance SPARC™ CMT Processor. IEEE Micro, 29 (2): 6--16, Mar.-Apr. 2009.
[9]
D. Christie, J.-W. Chung, S. Diestelhorst, M. Hohmuth, M. Pohlack, C. Fetzer, M. Nowack, T. Riegel, P. Felber, P. Marlier, and E. Riviere. Evaluation of AMD's Advanced Synchronization Facility within a Complete Transactional Memory Stack. In EuroSys Conf., Apr. 2010.
[10]
L. Dalessandro, M. F. Spear, and M. L. Scott. NOrec: Streamlining S™ by Abolishing Ownership Records. In 15th ACM Symp. on Principles and Practice of Parallel Programming, Jan. 2010.
[11]
P. Damron, A. Fedorova, Y. Lev, V. Luchangco, M. Moir, and D. Nussbaum. Hybrid Transactional Memory. In 12th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, Oct. 2006.
[12]
D. Dice, Y. Lev, V. J. Marathe, M. Moir, D. Nussbaum, and M. Oleszewski. Simplifying Concurrent Algorithms by Exploiting Hardware Transactional Memory. In 22nd ACM Symp. on Parallelism in Algorithms and Architectures, 2010.
[13]
D. Dice, Y. Lev, M. Moir, D. Nussbaum, and M. Olszewski. Early Experience with a Commercial Hardware Transactional Memory Implementation. SMLI TR-2009-180, Sun Microsystems Laboratories, Oct. 2009.
[14]
D. Dice, O. Shalev, and N. Shavit. Transactional Locking II. In 20th Intl. Symp. on Distributed Computing, Sep. 2006.
[15]
S. Diestelhorst and M. Hohmuth. Hardware Acceleration for Lock-Free Data Structures and Software-Transactional Memory. In Wkshp. on Exploiting Parallelism with Transactional Memory and other Hardware Assisted Methods, Apr. 2008.
[16]
S. Diestelhorst, M. Pohlack, M. Hohmuth, D. Christie, J.-W. Chung, and L. Yen. Implementing AMD's Advanced Synchronization Facility in an Out-of-Order x86 Core. In 5th ACM SIGPLAN Wkshp. on Transactional Computing, Apr. 2010.
[17]
C. Ding, X. Shen, K. Kelsey, C. Tice, R. Huang, and C. Zhang. Software Behavior Oriented Parallelization. In ACM SIGPLAN Conf. on Programming Language Design and Implementation, Jun. 2007.
[18]
F. Ellen, Y. Lev, V. Luchangco, and M. Moir. SNZI: Scalable NonZero Indicators. In 26th ACM Symp. on Principles of Distributed Computing, Aug. 2007.
[19]
P. Felber, C. Fetzer, P. Marlier, M. Nowack, and T. Riegel. Brief announcement: Hybrid time-based transactional memory. In N. Lynch and A. Shvartsman, editors, Distributed Computing, Lecture Notes in Computer Science. Springer Berlin/Heidelberg, 2010.
[20]
R. Guerraoui and M. Kapalka. On the Correctness of Transactional Memory. In 13th ACM Symp. on Principles and Practice of Parallel Programming, 2008.
[21]
L. Hammond, V. Wong, M. Chen, B. D. Carlstrom, J. D. Davis, B. Hertzberg, M. K. Prabju, H. Wijaya, C. Kozyrakis, and K. Olukotun. Transactional Memory Coherence and Consistency. In 31st Intl. Symp. on Computer Architecture, Jun. 2004.
[22]
T. Harris and K. Fraser. Revocable Locks for Non-Blocking Programming. In 10th ACM Symp. on Principles and Practice of Parallel Programming, Jun. 2005.
[23]
T. Harris, J. Larus, and R. Rajwar. Transactional Memory. Synthesis Lectures on Computer Architecture. Morgan Claypool, 2nd edition, 2010.
[24]
T. Harris, M. Plesko, A. Shinar, and D. Tarditi. Optimizing Memory Transactions. In ACM SIGPLAN Conf. on Programming Language Design and Implementation, Jun. 2006.
[25]
M. Herlihy and J. E. Moss. Transactional Memory: Architectural Support for Lock-Free Data Structures. In 20th Intl. Symp. on Computer Architecture, May. 1993.
[26]
S. Kumar, M. Chu, C. J. Hughes, P. Kundu, and A. Nguyen. Hybrid Transactional Memory. In 11th ACM Symp. on Principles and Practice of Parallel Programming, Mar. 2006.
[27]
C. Lameter. Effective Synchronization on Linux/NUMA Systems. In May 2005 Gelato Federation Meeting, May. 2005.
[28]
Y. Lev, V. Luchangco, V. J. Marathe, M. Moir, D. Nussbaum, and M. Olszewski. Anatomy of a Scalable Software Transactional Memory. In 4th ACM SIGPLAN Wkshp. on Transactional Computing, 2009. http://research.sun.com/scalable/pubs/ TRANSACT2009-ScalableSTMAnatomy.pdf.
[29]
Y. Lev, M. Moir, and D. Nussbaum. PhTM: Phased Transactional Memory. In 2nd ACM SIGPLAN Wkshp. on Transactional Computing, Aug. 2007.
[30]
S. Lie. Hardware Support for Unbounded Transactional Memory. Master's thesis, Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science, May 2004.
[31]
P. E. McKenney. Is Parallel Programming Hard, And, If So, What Can You Do About It? http://www.rdrop.com/users/paulmck/perfbook/perfbook.2010.01.23a.pdf, 2010. {Viewed Jan. 24, 2010}.
[32]
V. Menon, S. Balensiefer, T. Shpeisman, A.-R. Adl-Tabatabai, R. L. Hudson, B. Saha, and A. Welc. Practical Weak-Atomicity Semantics for Java S™. In 20th ACM Symp. on Parallelism in Algorithms and Architectures, June 2008.
[33]
K. E. Moore, J. Bobba, M. J. Moravan, M. D. Hill, and D. A. Wood. Log™: Log-based Transactional Memory. In 12th Intl. Symp. on High-Performance Computer Architecture, Feb. 2006.
[34]
M. Olszewski, J. Cutler, and J. G. Steffan. JudoSTM: A Dynamic Binary-Rewriting Approach to Software Transactional Memory. In 16th Intl. Conf. on Parallel Architectures and Compilation Techniques, Sep. 2007.
[35]
R. Rajwar, M. Herlihy, and K. Lai. Virtualizing Transactional Memory. In 32nd Intl. Symp. on Computer Architecture, Jun. 2005.
[36]
T. Riegel, P. Marlier, M. Nowack, P. Felber, and C. Fetzer. Optimizing Hybrid Transactional Memory: The Importance of Nonspeculative Operations. TUD-FI10-06-Nov.2010, Technische Universitaet Dresden, Nov. 2010.
[37]
B. Saha, A.-R. Adl-Tabatabai, R. L. Hudson, C. C. Minh, and B. Hertzberg. McRT-STM: A High Performance Software Transactional Memory System For A Multi-Core Runtime. In 11th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming, Mar. 2006.
[38]
M. Spear, V. Marathe, W. Scherer, and M. Scott. Conflict detection and validation strategies for software transactional memory. In S. Dolev, editor, Distributed Computing, Lecture Notes in Computer Science. Springer Berlin/Heidelberg, 2006.
[39]
M. F. Spear. Lightweight, Robust Adaptivity for Software Transactional Memory. In 22nd ACM Symp. on Parallelism in Algorithms and Architectures, June 2010.
[40]
F. Tabba, A. W. Hay, and J. R. Goodman. Transactional Value Prediction. In 4th ACM SIGPLAN Wkshp. on Transactional Computing, Feb. 2009.
[41]
C. Wang, W.-Y. Chen, Y. Wu, B. Saha, and A.-R. Adl-Tabatabai. Code Generation and Optimization for Transactional Memory Constructs in an Unmanaged Language. In Intl. Symp. on Code Generation and Optimization, Mar. 2007.
[42]
S. White and M. Spear. On Reconciling Hardware Atomicity, Memory Models, and __tm_waiver. In 2nd Workshop on the Theory of Transactional Memory (WTTM), Sep. 2010.
[43]
M. Yourst. PTLsim: A Cycle Accurate Full System x86-64 Microarchitectural Simulator. In 2007 IEEE Intl. Symp. on Performance Analysis of Systems and Software, Apr. 2007.

Cited By

View all
  • (2022)As-Is Approximate ComputingACM Transactions on Architecture and Code Optimization10.1145/355976120:1(1-26)Online publication date: 17-Nov-2022
  • (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
  • (2021)Adaptive Versioning in Transactional Memory SystemsAlgorithms10.3390/a1406017114:6(171)Online publication date: 31-May-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ASPLOS XVI: Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
March 2011
432 pages
ISBN:9781450302661
DOI:10.1145/1950365
  • cover image ACM SIGARCH Computer Architecture News
    ACM SIGARCH Computer Architecture News  Volume 39, Issue 1
    ASPLOS '11
    March 2011
    407 pages
    ISSN:0163-5964
    DOI:10.1145/1961295
    Issue’s Table of Contents
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 3
    ASPLOS '11
    March 2011
    407 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1961296
    Issue’s Table of Contents
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: 05 March 2011

Permissions

Request permissions for this article.

Check for updates

Author Tag

  1. transactional memory

Qualifiers

  • Research-article

Conference

ASPLOS'11

Acceptance Rates

Overall Acceptance Rate 535 of 2,713 submissions, 20%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)19
  • Downloads (Last 6 weeks)1
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2022)As-Is Approximate ComputingACM Transactions on Architecture and Code Optimization10.1145/355976120:1(1-26)Online publication date: 17-Nov-2022
  • (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
  • (2021)Adaptive Versioning in Transactional Memory SystemsAlgorithms10.3390/a1406017114:6(171)Online publication date: 31-May-2021
  • (2020)Brief Announcement: On Implementing Software Transactional Memory in the C++ Memory ModelProceedings of the 39th Symposium on Principles of Distributed Computing10.1145/3382734.3405746(224-226)Online publication date: 31-Jul-2020
  • (2020)Memory Tagging: Minimalist Synchronization for Scalable Concurrent Data StructuresProceedings of the 32nd ACM Symposium on Parallelism in Algorithms and Architectures10.1145/3350755.3400213(37-49)Online publication date: 6-Jul-2020
  • (2019)Simplifying Transactional Memory Support in C++ACM Transactions on Architecture and Code Optimization10.1145/332879616:3(1-24)Online publication date: 25-Jul-2019
  • (2019)LernaACM Transactions on Storage10.1145/331036815:1(1-24)Online publication date: 22-Mar-2019
  • (2019)Stretching the capacity of hardware transactional memory in IBM POWER architecturesProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295714(107-119)Online publication date: 16-Feb-2019
  • (2019)Leveraging hardware TM in HaskellProceedings of the 24th Symposium on Principles and Practice of Parallel Programming10.1145/3293883.3295711(94-106)Online publication date: 16-Feb-2019
  • (2019)The Case for Phase-Based Transactional MemoryIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2018.286171230:2(459-472)Online publication date: 1-Feb-2019
  • 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