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.
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- J. Chung, C. Cao Minh, B. Carlstrom, and C. Kozyrakis. Parallelizing specjbb2000 with transactional memory. In Workshop on Transactional Memory Workloads. 2006.Google Scholar
- B. Goetz. Java theory and practice: Managing volatility. IBM developerWorks, 2007.Google Scholar
- R. Guerraoui. A Smooth Concurrency Revolution with Free Objects. Internet Computing, 11(4):84.87, 2007. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- L. Lamport. Time, clocks, and the ordering of events in a distributed system. Communications of the ACM, 21(7):558--565, 1978. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Leveraging parallel nesting in transactional memory
Recommendations
Leveraging parallel nesting in transactional memory
PPoPP '10Exploiting 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 ...
Nested parallelism in transactional memory
PPoPP '08: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programmingThis paper investigates adding transactions with nested parallelism and nested transactions to a dynamically multithreaded parallel programming language that generates only series-parallel programs. We describe XConflict, a data structure that ...
Practical Parallel Nesting for Software Transactional Memory
DISC 2013: Proceedings of the 27th International Symposium on Distributed Computing - Volume 8205Transactional Memory TM provides a strong abstraction to tackle the challenge of synchronizing concurrent tasks that access shared state. Yet, most TMs do not allow a single transaction to contain parallel code. We propose an efficient parallel nesting ...







Comments