Transactional Memory: An Overview

Writing applications that benefit from the massive computational power of future multicore chip multiprocessors will not be an easy task for mainstream programmers accustomed to sequential algorithms rather than parallel ones. This article presents a survey of transactional memory, a mechanism that promises to enable scalable performance while freeing programmers from some of the burden of modifying their parallel code.

[1]  David Eisenstat,et al.  Hardware Acceleration of Software Transactional Memory , 2005 .

[2]  Maurice Herlihy,et al.  Apologizing versus asking permission: optimistic concurrency control for abstract data types , 1990, TODS.

[3]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[4]  Timothy L. Harris,et al.  Exceptions and side-effects in atomic blocks , 2005, Sci. Comput. Program..

[5]  Francisco J. Cazorla,et al.  Kilo-instruction processors: overcoming the memory wall , 2005, IEEE Micro.

[6]  Josep Torrellas,et al.  Speculative synchronization: applying thread-level speculation to explicitly parallel applications , 2002, ASPLOS X.

[7]  A. McDonald,et al.  Architectural Semantics for Practical Transactional Memory , 2006, ISCA 2006.

[8]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[9]  Virendra J. Marathe,et al.  Adaptive Software Transactional Memory , 2005, DISC.

[10]  Philip Wadler,et al.  The Glasgow Haskell Compiler: a technical overview , 1993 .

[11]  Mateo Valero,et al.  Implementing Kilo-Instruction Multiprocessors , 2005, ICPS '05. Proceedings. International Conference on Pervasive Services, 2005..

[12]  James R. Larus,et al.  Transactional Memory , 2006, Transactional Memory.

[13]  C. H. Flood,et al.  The Fortress Language Specification , 2007 .

[14]  Mark Moir,et al.  Hybrid transactional memory , 2006, ASPLOS XII.

[15]  J. Eliot B. Moss Open Nested Transactions: Semantics and Support , 2006 .

[16]  Brian T. Lewis,et al.  Compiler and runtime support for efficient software transactional memory , 2006, PLDI '06.

[17]  Nir Shavit,et al.  Transactional Locking II , 2006, DISC.

[18]  Mark Plesko,et al.  Optimizing memory transactions , 2006, PLDI '06.

[19]  Kunle Olukotun,et al.  Transactional memory coherence and consistency , 2004, Proceedings. 31st Annual International Symposium on Computer Architecture, 2004..

[20]  David A. Wood,et al.  LogTM: log-based transactional memory , 2006, The Twelfth International Symposium on High-Performance Computer Architecture, 2006..

[21]  Maurice Herlihy,et al.  Obstruction-free synchronization: double-ended queues as an example , 2003, 23rd International Conference on Distributed Computing Systems, 2003. Proceedings..

[22]  Maurice Herlihy,et al.  Software transactional memory for dynamic-sized data structures , 2003, PODC '03.

[23]  Barbara Liskov,et al.  Distributed programming in Argus , 1988, CACM.

[24]  Ravi Rajwar,et al.  Speculative lock elision: enabling highly concurrent multithreaded execution , 2001, Proceedings. 34th ACM/IEEE International Symposium on Microarchitecture. MICRO-34.

[25]  Quinn Jacobson,et al.  Architectural Support for Software Transactional Memory , 2006, 2006 39th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO'06).

[26]  Bradley C. Kuszmaul,et al.  Unbounded Transactional Memory , 2005, HPCA.

[27]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.