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.
- M. Abadi, A. Birrell, T. Harris, and M. Isard. Semantics of transactional memory and automatic mutual exclusion. In POPL, 2008. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- C. S. Ananian, K. Asanovic, B. C. Kuszmaul, C. E. Leiserson, and S. Lie. Unbounded transactional memory. In HPCA, 2005. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- The atomic ops project. http://www.hpl.hp.com/research/linux/atomic_ops.Google Scholar
- 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 Scholar
Digital Library
- J. Cachopo and A. Rito-Silva. Versioned boxes as the basis for memory transactions. Sci. Comput. Program., 63(2):172--185, 2006. Google Scholar
Digital Library
- C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford transactional applications for multi-processing. In IISWC, 2008.Google Scholar
Cross Ref
- 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 Scholar
- D. Dice, O. Shalev, and N. Shavit. Transactional locking II. In DISC, 2006. Google Scholar
Digital Library
- A. Dragojevi , R. Guerraoui, and M. Kapalka. Dividing transactional memories by zero. In TRANSACT, 2008.Google Scholar
- R. Ennals. Efficient software transactional memory. Technical report, Intel Research Cambridge, Jan 2005.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- R. Guerraoui, M. Herlihy, and B. Pochon. Polymorphic Contention Management. In DISC, 2005. Google Scholar
Digital Library
- R. Guerraoui, M. Herlihy, and B. Pochon. Toward a theory of transactional contention managers. In PODC, 2005. Google Scholar
Digital Library
- R. Guerraoui and M. Kapalka. On the correctness of transactional memory. In PPoPP, 2008. Google Scholar
Digital Library
- R. Guerraoui, M. Kapalka, and J. Vitek. STMBench7: A benchmark for software transactional memory. In EuroSys, 2007. Google Scholar
Digital Library
- T. Harris and K. Fraser. Revocable locks for non-blocking programming. In PPoPP, 2005. Google Scholar
Digital Library
- T. Harris, S. Marlow, S. Peyton-Jones, and M. Herlihy. Composable memory transactions. In PPoPP, 2005. Google Scholar
Digital Library
- 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 Scholar
- V. J. Marathe, M. F. Spear, and M. L. Scott. Scalable techniques for transparent privatization in software transactional memory. In ICPP, 2008. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- C. H. Papadimitriou. The serializability of concurrent database updates. J. ACM, 26(4), 1979. Google Scholar
Digital Library
- T. R. Pascal Felber and C. Fetzer. Dynamic performance tuning of word-based software transactional memory. In PPoPP, 2008. Google Scholar
Digital Library
- R. Rajwar, M. Herlihy, and K. Lai. Virtualizing transactional memory. In ISCA, 2005. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- W. N. Scherer III and M. L. Scott. Contention management in dynamic software transactional memory. In CSJP, 2004. Google Scholar
Digital Library
- N. Shavit and D. Touitou. Software transactional memory. In PODC, 1995. Google Scholar
Digital Library
- M. F. Spear, V. J. Marathe, L. Dalessandro, and M. L. Scott. Privatization techniques for software transactional memory. In PODC), 2007. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- T. Sweeney. The next mainstream programming language: a game developer's perspective. Invited talk at POPL, 2006. Google Scholar
Digital Library
- I. William N. Scherer and M. L. Scott. Advanced contention management for dynamic software transactional memory. In PODC, 2005. Google Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Stretching transactional memory
Recommendations
Stretching transactional memory
PLDI '09Transactional 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 ...
On speculative replication of transactional systems
In this paper we investigate, from a theoretical perspective, the problem of how to build speculative replication protocols for transactional systems layered on top of an Optimistic Atomic Broadcast (OAB) service. The OAB service provides an early, ...
Safe privatization in transactional memory
PPoPP '18Transactional memory (TM) facilitates the development of concurrent applications by letting the programmer designate certain code blocks as atomic. Programmers using a TM often would like to access the same data both inside and outside transactions, ...







Comments