skip to main content
10.1145/1542476.1542494acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Stretching transactional memory

Authors Info & Claims
Published:15 June 2009Publication History

ABSTRACT

Transactional memory (TM) is an appealing abstraction for programming multi-core systems. Potential target applications for TM, such as business software and video games, are likely to involve complex data structures and large transactions, requiring specific software solutions (STM). So far, however, STMs have been mainly evaluated and optimized for smaller scale benchmarks.

We revisit the main STM design choices from the perspective of complex workloads and propose a new STM, which we call SwissTM. In short, SwissTM is lock- and word-based and uses (1) optimistic (commit-time) conflict detection for read/write conflicts and pessimistic (encounter-time) conflict detection for write/write conflicts, as well as (2) a new two-phase contention manager that ensures the progress of long transactions while inducing no overhead on short ones. SwissTM outperforms state-of-the-art STM implementations, namely RSTM, TL2, and TinySTM, in our experiments on STMBench7, STAMP, Lee-TM and red-black tree benchmarks.

Beyond SwissTM, we present the most complete evaluation to date of the individual impact of various STM design choices on the ability to support the mixed workloads of large applications.

References

  1. M. Abadi, A. Birrell, T. Harris, and M. Isard. Semantics of transactional memory and automatic mutual exclusion. In POPL, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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 PLDI, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. S. Ananian, K. Asanovic, B. C. Kuszmaul, C. E. Leiserson, and S. Lie. Unbounded transactional memory. In HPCA, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. M. Ansari, C. Kotselidis, K. Jarvis, M. Lujan, C. Kirkham, and I. Watson. Lee-TM: A non-trivial benchmark for transactional memory. In ICA3PP, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. The atomic ops project. http://www.hpl.hp.com/research/linux/atomic_ops.Google ScholarGoogle Scholar
  6. C. Blundell, H. Cain, M. M. Michael, P. Wu, S. Chiras, and S. Chatterjee. Software transactional memory: Why is it only a research toy? ACM Queue, Sept. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. Cachopo and A. Rito-Silva. Versioned boxes as the basis for memory transactions. Sci. Comput. Program., 63(2):172--185, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford transactional applications for multi-processing. In IISWC, 2008.Google ScholarGoogle ScholarCross RefCross Ref
  9. D. Dice, M. Herlihy, D. Lea, Y. Lev, V. Luchangco, W. Mesard, M. Moir, K. Moore, and D. Nussbaum. Applications of the adaptive transactional memory test platform. In TRANSACT, 2008.Google ScholarGoogle Scholar
  10. D. Dice, O. Shalev, and N. Shavit. Transactional locking II. In DISC, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Dragojevi , R. Guerraoui, and M. Kapalka. Dividing transactional memories by zero. In TRANSACT, 2008.Google ScholarGoogle Scholar
  12. R. Ennals. Efficient software transactional memory. Technical report, Intel Research Cambridge, Jan 2005.Google ScholarGoogle Scholar
  13. K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger. The notions of consistency and predicate locks in a database system. Commun. ACM, 19(11): 624--633, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. P. Felber, C. Fetzer, U. Müller, T. Riegel, M. Susskraut, and H. Sturzrehm. Transactifying applications using an open compiler framework. In TRANSACT, 2007.Google ScholarGoogle Scholar
  15. R. Guerraoui, M. Herlihy, and B. Pochon. Polymorphic Contention Management. In DISC, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Guerraoui, M. Herlihy, and B. Pochon. Toward a theory of transactional contention managers. In PODC, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Guerraoui and M. Kapalka. On the correctness of transactional memory. In PPoPP, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. R. Guerraoui, M. Kapalka, and J. Vitek. STMBench7: A benchmark for software transactional memory. In EuroSys, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. T. Harris and K. Fraser. Revocable locks for non-blocking programming. In PPoPP, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. Composable memory transactions. In PPoPP, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 TRANSACT, 2006.Google ScholarGoogle Scholar
  22. V. J. Marathe, M. F. Spear, and M. L. Scott. Scalable techniques for transparent privatization in software transactional memory. In ICPP, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Y. Ni, A. Welc, A.-R. Adl-Tabatabai, M. Bach, S. Berkowits, J. Cownie, R. Geva, S. Kozhukow, R. Narayanaswamy, J. Olivier, S. Preis, B. Saha, A. Tal, and X. Tian. Design and implementation of transactional constructs for c/c++. In OOPSLA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. H. Papadimitriou. The serializability of concurrent database updates. J. ACM, 26(4), 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. T. R. Pascal Felber and C. Fetzer. Dynamic performance tuning of word-based software transactional memory. In PPoPP, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. R. Rajwar, M. Herlihy, and K. Lai. Virtualizing transactional memory. In ISCA, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. T. Riegel, P. Felber, and C. Fetzer. A lazy snapshot algorithm with eager validation. In DISC, 2006. RSTM home page. http://www.cs.rochester.edu/research/synchronization/rstm. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. B. Saha, A.-R. 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 PPoPP, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. W. N. Scherer III and M. L. Scott. Contention management in dynamic software transactional memory. In CSJP, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. N. Shavit and D. Touitou. Software transactional memory. In PODC, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. F. Spear, V. J. Marathe, L. Dalessandro, and M. L. Scott. Privatization techniques for software transactional memory. In PODC), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. M. F. Spear, V. J. Marathe, W. N. Scherer III, and M. L. Scott. Conflict detection and validation strategies for software transactional memory. In DISC, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. T. Sweeney. The next mainstream programming language: a game developer's perspective. Invited talk at POPL, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. I. William N. Scherer and M. L. Scott. Advanced contention management for dynamic software transactional memory. In PODC, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. R. M. Yoo, Y. Ni, A. Welc, B. Saha, A.-R. Adl-Tabatabai, and H.-H. S. Lee. Kicking the tires of software transactional memory: why the going gets tough. In SPAA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Stretching transactional memory

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              PLDI '09: Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation
              June 2009
              492 pages
              ISBN:9781605583921
              DOI:10.1145/1542476
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 44, Issue 6
                PLDI '09
                June 2009
                478 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1543135
                Issue’s Table of Contents

              Copyright © 2009 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 15 June 2009

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              Overall Acceptance Rate406of2,067submissions,20%

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!