skip to main content
10.1145/1693453.1693466acmconferencesArticle/Chapter ViewAbstractPublication PagesppoppConference Proceedingsconference-collections
research-article

Leveraging parallel nesting in transactional memory

Authors Info & Claims
Published:09 January 2010Publication History

ABSTRACT

Exploiting the emerging reality of affordable multi-core architectures goes through providing programmers with simple abstractions that would enable them to easily turn their sequential programs into concurrent ones that expose as much parallelism as possible. While transactional memory promises to make concurrent programming easy to a wide programmer community, current implementations either disallow nested transactions to run in parallel or do not scale to arbitrary parallel nesting depths. This is an important obstacle to the central goal of transactional memory, as programmers can only start parallel threads in restricted parts of their code.

This paper addresses the intrinsic difficulty behind the support for parallel nesting in transactional memory, and proposes a novel solution that, to the best of our knowledge, is the first practical solution to meet the lowest theoretical upper bound known for the problem.

Using a synthetic workload configured to test parallel transactions on a multi-core machine, a practical implementation of our algorithm yields substantial speed-ups (up to 22x with 33 threads) relatively to serial nesting, and shows that the time to start and commit transactions, as well as to detect conflicts, is independent of nesting depth.

References

  1. K. Agrawal, J. T. Fineman, and J. Sukha. Nested parallelism in transactional memory. In PPoPP '08: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 163--174, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. W. Baek and C. Kozyrakis. NesTM: Implementing and Evaluating Nested Parallelism in Software Transactional Memory. In Proceedings of the 9th International Conference on Parallel Architectures and Compilation Techniques (PACT), 2009.Google ScholarGoogle Scholar
  3. R. Blumofe, C. Joerg, B. C. Kuszmaul, C. Leiserson, K. Randall, and Y. Zhou. Cilk: An efficient multithreaded runtime system. In Journal of Parallel and Distributed Computing, pages 207--216, 1995.Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. B. D. Carlstrom, A. McDonald, H. Chafi, J. Chung, C. C. Minh, C. Kozyrakis, and K. Olukotun. The Atomos transactional programming language. SIGPLAN Notices (Proceedings of the 2006 PLDI Conference), 41(6):1--13, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Chung, C. Cao Minh, B. Carlstrom, and C. Kozyrakis. Parallelizing specjbb2000 with transactional memory. In Workshop on Transactional Memory Workloads. 2006.Google ScholarGoogle Scholar
  6. B. Goetz. Java theory and practice: Managing volatility. IBM developerWorks, 2007.Google ScholarGoogle Scholar
  7. R. Guerraoui. A Smooth Concurrency Revolution with Free Objects. Internet Computing, 11(4):84.87, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. T. Harris, S. Marlow, S. Peyton Jones, and M. Herlihy. Composable memory transactions. In PPoPP '05: Proceedings of the 10th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 48--60, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In Proceedings of the 20th Annual International Symposium on Computer Architecture, pages 289--300, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Isard and A. Birrell. Automatic mutual exclusion. In HOTOS'07: Proceedings of the 11th USENIX Workshop on Hot Topics in Operating Systems, pages 1--6, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. L. Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558--565, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. J. Moravan, J. Bobba, K. E. Moore, L. Yen, M. D. Hill, B. Liblit, M. M. Swift, and D. A. Wood. Supporting Nested Transactional Memory in LogTM. SIGPLAN Notices (Proceedings of the 2006 ASPLOS Conference), 41(11):359--370, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Y. Ni, V. S.Menon, A.-R. Adl-Tabatabai, A. L. Hosking, R. L. Hudson, J. E. B. Moss, B. Saha, and T. Shpeisman. Open nesting in software transactional memory. In PPoPP '07: Proceedings of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 68--78, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. H. Ramadan and E.Witchel. The xfork in the road to coordinated sibling transactions. In 4th ACM SIGPLAN Workshop on Transactional Computing (TRANSACT 2009), 2009.Google ScholarGoogle Scholar
  15. W. N. Scherer, III and M. L. Scott. Advanced contention management for dynamic software transactional memory. In PODC '05: Proceedings of the 24th annual ACM Symposium on Principles of Distributed Computing, pages 240--248, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. H. Volos, A. Welc, A.-R. Adl-Tabatabai, T. Shpeisman, X. Tian, and R. Narayanaswamy. NePaLTM: Design and Implementation of Nested Parallelism for Transactional Memory Systems. In Proceedings of the 23rd European Conference on Object-Oriented Programming (ECOOP), pages 123--147, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. F. Zyulkyarov, V. Gajinov, O. S. Unsal, A. Cristal, E. Ayguadé, T. Harris, and M. Valero. Atomic quake: using transactional memory in an interactive multiplayer game server. In PPoPP '09: Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pages 25--34, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Leveraging parallel nesting in 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
        PPoPP '10: Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
        January 2010
        372 pages
        ISBN:9781605588773
        DOI:10.1145/1693453
        • cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 45, Issue 5
          PPoPP '10
          May 2010
          346 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/1837853
          Issue’s Table of Contents

        Copyright © 2010 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 9 January 2010

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate230of1,014submissions,23%

      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!