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

Time-Warp: Efficient Abort Reduction in Transactional Memory

Published: 29 June 2015 Publication History

Abstract

The multicore revolution that took place one decade ago has turned parallel programming into a major concern for the mainstream software development industry. In this context, Transactional Memory (TM) has emerged as a simpler and attractive alternative to that of lock-based synchronization, whose complexity and error-proneness are widely recognized.
The notion of permissiveness in TM translates to only aborting a transaction when it cannot be accepted in any history that guarantees a target correctness criterion. This theoretically powerful property is often neglected by state-of-the-art TMs because it imposes considerable algorithmic costs. Instead, these TMs opt to maximize their implementation’s efficiency by aborting transactions under overly conservative conditions. As a result, they risk rejecting a significant number of safe executions.
In this article, we seek to identify a sweet spot between permissiveness and efficiency by introducing the Time-Warp Multiversion (TWM) algorithm. TWM is based on the key idea of allowing an update transaction that has performed stale reads (i.e., missed the writes of concurrently committed transactions) to be serialized by “committing it in the past,” which we call a time-warp commit. At its core, TWM uses a novel, lightweight validation mechanism with little computational overhead. TWM also guarantees that read-only transactions can never be aborted. Further, TWM guarantees Virtual World Consistency, a safety property that is deemed as particularly relevant in the context of TM.
We demonstrate the practicality of this approach through an extensive experimental study: we compare TWM with five other TMs, representative of typical alternative design choices, and on a wide variety of benchmarks. This study shows an average performance improvement across all considered workloads and TMs of 65% in high concurrency scenarios, with gains extending up to 9 × with the most favorable benchmarks. These results are a consequence of TWM’s ability to achieve drastic reduction of aborts in scenarios of nonminimal contention, while introducing little overhead (approximately 10%) in worst-case, synthetically designed scenarios (i.e., no contention or contention patterns that cannot be optimized using TWM).

References

[1]
Martín Abadi, Tim Harris, and Mojtaba Mehrara. 2009. Transactional memory with strong atomicity using off-the-shelf memory protection hardware. In Proceedings of the 14th Symposium on Principles and Practice of Parallel Programming (PPoPP’09). 185--196.
[2]
Atul Adya. 1999. Weak consistency: A Generalized Theory and Optimistic Implementations for Distributed Transactions. Ph.D. Dissertation. Massachusetts Institute of Technology.
[3]
Hagit Attiya and Eshcar Hillel. 2011. Single-version STMs can be multi-version permissive. In Proceedings of the 12th International Conference on Distributed Computing and Networking (ICDCN’11). 83--94.
[4]
Utku Aydonat and T. Abdelrahman. 2012. Relaxed concurrency control in software transactional memory. IEEE Trans. Parallel and Distributed Systems 23, 7 (2012), 1312--1325.
[5]
Hal Berenson, Phil Bernstein, Jim Gray, Jim Melton, Elizabeth O’Neil, and Patrick O’Neil. 1995. A critique of ANSI SQL isolation levels. In Proceedings of SIGMOD. 1--10.
[6]
Philip A. Bernstein, Vassco Hadzilacos, and Nathan Goodman. 1987. Concurrency Control and Recovery in Database Systems. Addison-Wesley Longman Publishing Co., Inc., Boston, MA.
[7]
Michael Cahill, Uwe Röhm, and Alan Fekete. 2008. Serializable isolation for snapshot databases. In Proceedings of SIGMOD. 729--738.
[8]
Maria Couceiro, Pedro Ruivo, Paolo Romano, and Luís Rodrigues. 2013. Chasing the optimum in replicated in-memory transactional platforms via protocol adaptation. In International Conference on Dependable Systems and Networks (DSN’13). 1--12.
[9]
Tyler Crain, Damien Imbs, and Michel Raynal. 2011. Read invisibility, virtual world consistency and probabilistic permissiveness are compatible. In Proceedings of the 11th International Conference on Algorithms and Architectures for Parallel Processing (ICA3PP’11). 244--257.
[10]
Luke Dalessandro, François Carouge, Sean White, Yossi Lev, Mark Moir, Michael L. Scott, and Michael F. Spear. 2011. Hybrid NOrec: A case study in the effectiveness of best effort hardware transactional memory. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’11). 39--52.
[11]
Luke Dalessandro, Michael F. Spear, and Michael L. Scott. 2010. NOrec: Streamlining STM by abolishing ownership records. In Proceedings of the 15th Symposium on Principles and Practice of Parallel Programming (PPoPP’10). 67--78.
[12]
Peter Damron, Alexandra Fedorova, Yossi Lev, Victor Luchangco, Mark Moir, and Daniel Nussbaum. 2006. Hybrid transactional memory. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS’06). 336--346.
[13]
Dave Dice, Ori Shalev, and Nir Shavit. 2006. Transactional locking II. In Proceedings of the 20th Symposium on Distributed Computing (DISC’06). 194--208.
[14]
Nuno Diegues and Joao Cachopo. 2013. Practical parallel nesting for software transactional memory. In Proceedings of the 27th Symposium on Distributed Computing (DISC). 149--163.
[15]
Nuno Diegues and Paolo Romano. 2013. Bumper: Sheltering transactions from conflicts. In IEEE Symposium on Reliable and Distributed Systems (SRDS). 185--194.
[16]
Nuno Diegues and Paolo Romano. 2014. Self-tuning intel transactional synchronization extensions. In Proceedings of the 11th International Conference on Autonomic Computing (ICAC’14). 209--219.
[17]
Nuno Diegues, Paolo Romano, and Luís Rodrigues. 2014. Virtues and limitations of commodity hardware transactional memory. In Proceedings of the International Conference on Parallel Architectures and Compilation (PACT’14). 3--14.
[18]
Aleksandar Dragojević, Pascal Felber, Vincent Gramoli, and Rachid Guerraoui. 2011. Why STM can be more than a research toy. Communications of ACM 54, 4 (April 2011), 70--77.
[19]
Pascal Felber, Christof Fetzer, Patrick Marlier, and Torvald Riegel. 2010a. Time-based software transactional memory. IEEE Transactions on Parallel and Distributed Systems 21, 12 (Dec. 2010), 1793--1807.
[20]
Pascal Felber, Christof Fetzer, and Torvald Riegel. 2008. Dynamic performance tuning of word-based software transactional memory. In Proceedings of the 13th Symposium on Principles and Practice of Parallel Programming (PPoPP’08). 237--246.
[21]
Pascal Felber, Guy Korland, and Nir Shavit. 2010b. Deuce: Noninvasive concurrency with a Java STM. In Proceedings of the Workshop on Programmability Issues for Multi-Core Computers (MULTIPROG).
[22]
Sergio Miguel Fernandes and Joao Cachopo. 2011. Lock-free and scalable multi-version software transactional memory. In Proceedings of the 16th Symposium on Principles and Practice of Parallel Programming (PPoPP’11). 179--188.
[23]
Vincent Gramoli, Derin Harmanci, and Pascal Felber. 2010. On the input acceptance of transactional memory. Parallel Processing Letters 20, 1 (2010).
[24]
Rachid Guerraoui, Thomas A. Henzinger, and Vasu Singh. 2008. Permissiveness in transactional memories. In Proceedings of the 22nd Symposium on Distributed Computing (DISC’08). 305--319.
[25]
Rachid Guerraoui, Maurice Herlihy, and Bastian Pochon. 2005. Polymorphic contention management. In Proceedings of the 19th Symposium on Distributed Computing (DISC’05). 303--323.
[26]
Rachid Guerraoui and Michal Kapalka. 2008. On the correctness of transactional memory. In Proceedings of the 13th Symposium on Principles and Practice of Parallel Programming (PPoPP’08). 175--184.
[27]
Rachid Guerraoui, Michal Kapalka, and Jan Vitek. 2007. STMBench7: A benchmark for software transactional memory. In Proceedings of the 2nd EuroSys. 315--324.
[28]
Maurice Herlihy. 1991. Wait-free synchronization. ACM Transactions on Programming Languages and Systems 13, 1 (Jan. 1991), 124--149.
[29]
Maurice Herlihy and Eric Koskinen. 2008. Transactional boosting: A methodology for highly-concurrent transactional objects. In Proceedings of the 13th Symposium on Principles and Practice of Parallel Programming (PPoPP). 207--216.
[30]
Maurice Herlihy, Victor Luchangco, and Mark Moir. 2003. Obstruction-free synchronization: Double-ended queues as an example. In Proceedings of the International Conference on Distributed Computing Systems (ICDCS). 522--529.
[31]
Maurice Herlihy and J. Eliot B. Moss. 1993. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th International Symposium on Computer Architecture (ISCA’93). 289--300.
[32]
Damien Imbs and Michel Raynal. 2012. Virtual world consistency: A condition for STM systems (with a versatile protocol with invisible read operations). Theoretical Computer Science 444, 0 (2012), 113--127.
[33]
Intel Corporation. February 2012. Intel architecture instruction set extensions programming reference. In 319433-012 edition.
[34]
David R. Jefferson. 1985. Virtual time. ACM Trans. Program. Lang. Syst. 7, 3 (July 1985), 404--425.
[35]
Idit Keidar and Dmitri Perelman. 2009. On avoiding spare aborts in transactional memory. In Proceedings of the 21st Annual Symposium on Parallelism in Algorithms and Architectures (SPAA’09). 59--68.
[36]
Yossi Lev, Mark Moir, and Dan Nussbaum. 2007. PhTM: Phased transactional memory. In Proceedings of the Workshop on Transactional Computing (TRANSACT’07).
[37]
Heiner Litz, David Cheriton, Omid Azizi, Amin Firoozshahian, and John Stevenson. 2014. SI-TM: Reducing transactional memory abort rates through snapshot isolation. In Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 383--398.
[38]
Li Lu and Michael L. Scott. 2013. Generic multiversion STM. In Proceedings of the 27th Symposium on Distributed Computing (DISC’13). 134--148.
[39]
Virendra J. Marathe, Michael F. Spear, and Michael L. Scott. 2008. Scalable techniques for transparent privatization in software transactional memory. In Proceedings of the 37th International Conference on Parallel Processing (ICPP). 67--74.
[40]
Alexander Matveev and Nir Shavit. 2013. Reduced hardware transactions: A new approach to hybrid transactional memory. In Proceedings of the 25th ACM Symposium on Parallelism in Algorithms and Architectures (SPAA’13). 11--22.
[41]
Chi Cao Minh, JaeWoong Chung, C. Kozyrakis, and K. Olukotun. 2008. STAMP: Stanford transactional applications for multi-processing. In Proceedings of the Symposium on Workload Characterization (IISWC’08). 35--46.
[42]
Victor Pankratius and Ali-Reza Adl-Tabatabai. 2011. A study of transactional memory vs. locks in practice. In Proceedings of the 23rd ACM Symposium on Parallelism in Algorithms and Architectures (SPAA’11). 43--52.
[43]
Christos H. Papadimitriou. 1979. The serializability of concurrent database updates. J. ACM 26, 4 (Oct. 1979), 631--653.
[44]
Dmitri Perelman, Anton Byshevsky, Oleg Litmanovich, and Idit Keidar. 2011. SMV: Selective multi-versioning STM. In Proceedings of the 25th Symposium on Distributed Computing (DISC’11). 125--140.
[45]
Dmitri Perelman, Rui Fan, and Idit Keidar. 2010. On maintaining multiple versions in STM. In Proceedings of the 29th Symposium on Principles of Distributed Computing (PODC’11). 16--25.
[46]
Hany E. Ramadan, Indrajit Roy, Maurice Herlihy, and Emmett Witchel. 2009. Committing conflicting transactions in an STM. In Proceedings of the 14th Symposium on Principles and Practice of Parallel Programming (PPoPP’09). 163--172.
[47]
Amy Wang, Matthew Gaudet, Peng Wu, José Nelson Amaral, Martin Ohmacht, Christopher Barton, Raul Silvera, and Maged Michael. 2012a. Evaluation of blue Gene/Q hardware support for transactional memories. In Proceedings of the 21st International Conference on Parallel Architectures and Compilation Techniques (PACT’12). 127--136.
[48]
Qingping Wang, Sameer Kulkarni, John Cavazos, and Michael Spear. 2012b. A transactional memory with automatic performance tuning. ACM Transactions on Architectures and Code Optimization (TACO) 8, 4, Article 54 (Jan. 2012), 23 pages.
[49]
Richard M. Yoo, Christopher J. Hughes, Konrad Lai, and Ravi Rajwar. 2013. Performance evaluation of intel; Transactional synchronization extensions for high-performance computing. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC’13). Article 19, 11 pages.

Cited By

View all
  • (2024)VERLIB: Concurrent Versioned PointersProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638501(200-214)Online publication date: 2-Mar-2024
  • (2021)Constant-time snapshots with applications to concurrent data structuresProceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3437801.3441602(31-46)Online publication date: 17-Feb-2021
  • (2017)Transactions in relaxed memory architecturesProceedings of the ACM on Programming Languages10.1145/31581062:POPL(1-29)Online publication date: 27-Dec-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Parallel Computing
ACM Transactions on Parallel Computing  Volume 2, Issue 2
July 2015
160 pages
ISSN:2329-4949
EISSN:2329-4957
DOI:10.1145/2798443
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 the author(s) 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: 29 June 2015
Accepted: 01 January 2015
Revised: 01 October 2014
Received: 01 February 2014
Published in TOPC Volume 2, Issue 2

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Multiversion concurrency control
  2. permissiveness
  3. software transactional memory
  4. spurious abort

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

  • GreenTM FCT Project
  • specSTM FCT Project
  • Fundacao para a Ciencia e Tecnologia

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2024)VERLIB: Concurrent Versioned PointersProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638501(200-214)Online publication date: 2-Mar-2024
  • (2021)Constant-time snapshots with applications to concurrent data structuresProceedings of the 26th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3437801.3441602(31-46)Online publication date: 17-Feb-2021
  • (2017)Transactions in relaxed memory architecturesProceedings of the ACM on Programming Languages10.1145/31581062:POPL(1-29)Online publication date: 27-Dec-2017
  • (2016)STI-BT: A Scalable Transactional IndexIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2015.248526727:8(2408-2421)Online publication date: 1-Aug-2016
  • (2015)Self-tuning Intel Restricted Transactional MemoryParallel Computing10.1016/j.parco.2015.10.00150:C(25-52)Online publication date: 1-Dec-2015

View Options

Get Access

Login options

Full Access

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