McRT-STM
Top Cited Papers
- 29 March 2006
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 187-197
- https://doi.org/10.1145/1122971.1123001
Abstract
Applications need to become more concurrent to take advantage of the increased computational power provided by chip level multiprocessing. Programmers have traditionally managed this concurrency using locks (mutex based synchronization). Unfortunately, lock based synchronization often leads to deadlocks, makes fine-grained synchronization difficult, hinders composition of atomic primitives, and provides no support for error recovery. Transactions avoid many of these problems, and therefore, promise to ease concurrent programming.We describe a software transactional memory (STM) system that is part of McRT, an experimental Multi-Core RunTime. The McRT-STM implementation uses a number of novel algorithms, and supports advanced features such as nested transactions with partial aborts, conditional signaling within a transaction, and object based conflict detection for C/C++ applications. The McRT-STM exports interfaces that can be used from C/C++ programs directly or as a target for compilers translating higher level linguistic constructs.We present a detailed performance analysis of various STM design tradeoffs such as pessimistic versus optimistic concurrency, undo logging versus write buffering, and cache line based versus object based conflict detection. We also show a MCAS implementation that works on arbitrary values, coexists with the STM, and can be used as a more efficient form of transactional memory. To provide a baseline we compare the performance of the STM with that of fine-grained and coarse-grained locking using a number of concurrent data structures on a 16-processor SMP system. We also show our STM performance on a non-synthetic workload -- the Linux sendmail application.Keywords
This publication has 18 references indexed in Scilit:
- Compiler and runtime support for efficient software transactional memoryPublished by Association for Computing Machinery (ACM) ,2006
- Advanced contention management for dynamic software transactional memoryPublished by Association for Computing Machinery (ACM) ,2005
- Revocable locks for non-blocking programmingPublished by Association for Computing Machinery (ACM) ,2005
- Design tradeoffs in modern software transactional memory systemsPublished by Association for Computing Machinery (ACM) ,2004
- Programming with transactional coherence and consistency (TCC)Published by Association for Computing Machinery (ACM) ,2004
- Language support for lightweight transactionsPublished by Association for Computing Machinery (ACM) ,2003
- Safe memory reclamation for dynamic lock-free objects using atomic reads and writesPublished by Association for Computing Machinery (ACM) ,2002
- HoardPublished by Association for Computing Machinery (ACM) ,2000
- A comparative performance evaluation of write barrier implementationPublished by Association for Computing Machinery (ACM) ,1992
- Simple generational garbage collection and fast allocationSoftware: Practice and Experience, 1989