Transactional Memory, 2nd edition
Authors:
- Tim HarrisTHTim Harris
- James LarusJLJames Larus
- Ravi RajwarRRRavi Rajwar
- 22 December 2010
- journal article
- Published by Springer Nature in Synthesis Lectures on Computer Architecture
- Vol. 5 (1) , 1-263
Abstract
The advent of multicore processors has renewed interest in the idea of incorporating transactions into the programming model used to write parallel programs. This approach, known as transactional memory, offers an alternative, and hopefully better, way to coordinate concurrent threads. The ACI (atomicity, consistency, isolation) properties of transactions provide a foundation to ensure that concurrent reads and writes of shared data do not produce inconsistent or incorrect results. At a higher level, a computation wrapped in a transaction executes atomically - either it completes successfully and commits its result in its entirety or it aborts. In addition, isolation ensures the transaction produces the same result as if no other transactions were executing concurrently. Although transactions are not a parallel programming panacea, they shift much of the burden of synchronizing and coordinating parallel computations from a programmer to a compiler, to a language runtime system, or to hardware. The challenge for the system implementers is to build an efficient transactional memory infrastructure. This book presents an overview of the state of the art in the design and implementation of transactional memory systems, as of early spring 2010. Table of Contents: Introduction / Basic Transactions / Building on Basic Transactions / Software Transactional Memory / Hardware-Supported Transactional Memory / ConclusionsKeywords
This publication has 251 references indexed in Scilit:
- Compiler and runtime techniques for software transactional memory optimizationConcurrency and Computation: Practice and Experience, 2008
- Versioned boxes as the basis for memory transactionsScience of Computer Programming, 2006
- Nested transactional memory: Model and architecture sketchesScience of Computer Programming, 2006
- Exceptions and side-effects in atomic blocksScience of Computer Programming, 2005
- A program structure for error detection and recovery2005
- Virtualizing Transactional MemoryACM SIGARCH Computer Architecture News, 2005
- Transactional execution: toward reliable, high-performance multithreadingIEEE Micro, 2003
- Summary cache: a scalable wide-area Web cache sharing protocolIEEE/ACM Transactions on Networking, 2000
- A unified formalization of four shared-memory modelsIEEE Transactions on Parallel and Distributed Systems, 1993
- Some Experiments on the Recognition of Speech, with One and with Two EarsThe Journal of the Acoustical Society of America, 1953