Contents

Resource. 1

Introduction on Transactions 1

TM-Implementation. 2

STM.. 2

HTM.. 5

HyTM.. 8

Comp. 8

Atomic section (pessimistic concurrent control) 8

TM-Semantics 9

TM-Semantics-Formalization. 9

TM-Semantics-Atomicity. 11

TM-Semantics-Isolation. 12

Languages 12

 

Resource

Some useful information on transactions can be obtained from the links below:

http://www.cs.wisc.edu/trans-memory/biblio/index.html

http://www.cs.washington.edu/homes/djg/publications.html

Introduction on Transactions

1.       Herb Sutter and James Larus. Software and the concurrency revolution. ACM Queue, 3(7):54~62, Sep. 2005.  [ Paper: pdf ]

2.       Ali-Reza Adl-Tabatabai, Christos Kozyrakis, Bratin Saha. Unlocking concurrency. ACM Queue, 4(10), pages 24-33, December/January 2006-2007.  [ Paper: pdf ]

TM-Implementation

The papers listed below mainly focus on transactions implementation classified into three categories: software transaction memory (STM) ,hardware transaction memory (HTM) and hybrid transaction memory(HYTM)

STM

Michael L. Scott  Virendra J. Marathe  (RSTM)

Maurice Herlihy (DSTM&DSTM2)

Tim Harris

3.       Nir Shavit and Dan Touitou. Software transactional memory. In Proceedings of 14th Annual ACM Symposium on Principles of Distributed Computing(PDC’95), pages 204-213, 1995. [ Paper: pdf ] (First paper of STM)

[Description] Propose the concept of software transaction memory; give an implementation based on k-word compare&swap.

Eager versioning + Eager conflict detection

4.       M. Herlihy, V. Luchangco, and M. Moir. A flexible framework for implementing software transactional memory. In OOPSLA 2006.  [ Paper: pdf ]

[Description] This paper describe DSTM2, a software library that provides a framework for implementing object-based STM. It uses transactional factories to transform sequential classes into atomic ones and also provides several organizations of shared objects, such as obstruct-free and shadow.

5.       Virendra J. Marathe, William N. Scherer III, and Michael L. Scott. Adaptive software transactional memory. In Proceedings of 19th International Symposium on Distributed Computing(DISC’05), Cracow, Poland, pages 354-368, Sep. 2005. [ Paper: pdf ]

[Description] This paper presents an Adaptive STM (ASTM) system which is more flexible than DSTM or OSTM; it can be adjusted to the offered workload for its methods of versioning and conflict detection.

6.       Maurice Herlihy, Victor Luchangco, Mark Moir, and William N. Scherer III. Software transactional memory for dynamic-sized data structures. In Proceedings of 22nd ACM Symposium on Principles of Distributed Computing(PDC’03), Boston, MA, pages 92-101, July. 2003.  [ Paper: pdf ]

[Description] This paper proposes DSTM, a STM system that can support dynamic-sized data structures, that is, the granularity of conflict detection is on object level. The DSTM is obstruction-free, and it is also the first to apply the ”early release” technique.

Eager versioning + Lazy conflict detection

7.       T. Harris, M. Plesko, A. Shinnar, and D. Tarditi. Optimizing memory transactions. In Proceedings of ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation(PLDI’06), Ottawa, Canada, June 2006. [ Paper: pdf ]

[Description] This paper describes several approaches to improve the performance of word-based STM: 1) A “direct access” technique for reducing the number of redirect when accessing shared memory; 2) a compiler optimization for reducing the amount of thread-local log; 3) a runtime filtering for detecting duplicate log entries that are missed statically, and 4)a series of GC-time techniques to compact the logs generated by long-running atomic blocks.

8.       Bratin Saha, Ali-Reza Adl-Tabatabai, Richard L. Hudson, Chi Cao Minh, and Benjamin Hertzberg. McRT-STM: a high performance software transactional memory system for a multi-Core runtime. In Proceedings 11th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’06), New York, USA, pages 187-197, March 2006. [ Paper: pdf ]

[Description] This paper describes McRT-STM, which holds some new features of nested transactions with partial abort, conditional signaling within a transaction. There are quite a few performance comparisons between different features of STM implementation on multi-processor system, concerning “reader-writer locking” versus “Read versioning and write locking”, “write buffering” versus “undo logging”, and object versus cache-line conflict detection.

9.       Ali-Reza Adl-tabatabai, Brian T. Lewis, Vijay Menon, et al. Compiler and runtime support for efficient software transactional memory. In Proceedings of ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation (PLDI’06), Ottawa, Canada, June 2006. [ Paper: pdf, Talk: ppt ]

[Description] This paper presents some details about the compiler and runtime support for McRT-STM.

Lazy versioning + Lazy conflict detection

10.    Virendra J. Marathe, William N. Scherer III, and Michael L. Scott. Adaptive software transactional memory. In Proceedings of 19th International Symposium on Distributed Computing(DISC’05), Cracow, Poland, pages 354-368, Sep. 2005. [ Paper: pdf ]

[Description] As described above.

Lazy versioning + Eager conflict detection

N/A

Others

11.    Keir Fraser and Tim Harris. Concurrent programming without locks. In Proceedings of ACM Transactions on Computer Systems (TOCS), Volume 25, Issue 2, May 2007.  [ Paper: pdf ]

[Description] N/A.

12.    Luke Dalessandro and Virendra J. Marathe and Michael F. Spear and Michael L. Scott. Capabilities and Limitations of Library-Based Software Transactional Memory in C++. In Proceedings of the 2nd ACM SIGPLAN Workshop on Transactional Computing, Aug 2007.[Paper: pdf]

[Description] This paper describes a library-based transactional memory API for C++. Designed to address the limitations of an earlier API with similar functionality.

13.    Robert Ennals. Software transactional memory should not be obstruction-free. Technical Report Nr. IRC-TR-06-052. Intel Research Cambridge Technical Report. Jan. 2006.  [ Paper: pdf, Talk: ppt ]

[Description] N/A.

14.    David Dice, Ori Shalev, and Nir Shavit. Transactional locking II. In Proceedings of 20th International Symposium on Distributed Computing(ISDC’06), Stockholm, Sweden, pages 194-208, Sep 2006.  [ Paper: pdf ]

[Description] N/A.

15.    Adam Welc, Antony L. Hosking, and Suresh Jagannathan. Transparently Reconciling Transactions with Locking for Java Synchronization. In Proceedings of 20th European Conference on Object-Oriented Programming (ECOOP’06), Nantes (France), LNCS 4067, pages 148-173, July 2006. [ Paper: pdf ]

[Description] This paper shows how lock and transaction memory can work together when implementing the monitor of Java. It builds a simple Java-like language and the operation semantics, and proves that this language satisfies the propertys of isolation, atomicity, and mutex-safty.

16.    A. Welc, S. Jagannathan, and A. L. Hosking. Transactional monitors for concurrent objects. In Proceedings of 18th European Conference on Object-Oriented Programming (ECOOP), LNCS 3086, pages 519-542, 2004. [ Paper: pdf ]

[Description] This paper proposes a new idea to implement the monitor of Java by using transaction memory for high concurrency.

17.    Virendra J. Marathe, William N. Scherer III, and Michael L. Scott. Design tradeoffs in modern software transactional memory systems. In Proceedings of 7th Workshop on Languages, Compilers, and Run-time Support for Scalable Systems (LCR’04), 2004. [ Paper: pdf ]

[Description] This paper analyzes two STM implementations of DSTM and OSTM, comparing with each other the versioning strategies and metadata organizations.

HTM

http://tcc.stanford.edu/  TCC

http://www.cs.wisc.edu/multifacet/  logTM

http://supertech.csail.mit.edu/xaction.html UTM

http://wasp.cs.washington.edu/ WASP

18.    Luke Yen, Jayaram Bobba, Michael R. Marty, Kevin E. Moore, Haris Volos, Mark D. Hill, Michael M. Swift, and David A. Wood. LogTM-SE: Decoupling Hardware Transactional Memory from Caches. In Proceedings of International Symposium on High Performance Computer Architecture (HPCA), February 2007. [ Paper: pdf, Talk: ppt, pdf ]

19.    Colin Blundell, Joe Devietti, E Christopher Lewis, and Milo Martin. Making the Fast Case Common and the Uncommon Case Simple in Unbounded Transactional Memory. In International Symposium on Computer Architecture, June 2007. [ Paper: pdf ]
permissions-only cache
ONETM(ONETM-Serialized, ONETM-Concurrent)

20.    Naveen Neelakantam, Ravi Rajwar, Suresh Srinivas, Uma Srinivasan, and Craig Zilles. University of Illinois at Urbana-Champaign and Intel Corporation. Hardware Atomicity for Reliable Software Speculation. Appears In Proceedings of 34th International Symposium on Computer Architecture , San Diego, CA, June 2007. [Paper: pdf ]

To propose that microprocessors provide architecturally-visible hardware primitives for atomic execution. These primitives provide to the compiler the ability to optimize the program’s hot path in isolation, allowing the use of non-speculative formulations of optimization passes to perform speculative optimizations.

21.    Austen McDonald, JaeWoong Chung, Brian D. Carlstrom, Chi Cao Minh, Hassan Chafi, Christos Kozyrakis and Kunle Olukotun. Architectural semantics for practical transactional memory. In Proceedings of 33rd Annual International Symposium on Computer Architecture (ISCA’06). Boston, Massachusetts, pages 53-65, June, 2006. [ Paper: pdf ]
support to implement functionality such as conditional synchronization, system calls, I/O, runtime exceptions
ISA for TM systems
1) two-phase commit; 2) support for SW handlers on commit, violation and abort; 3) full support for open- and closed-nested transactions with independent rollback

22.    Lance Hammond, Vicky Wong, Mike Chen, et al. Transactional memory coherence and consistency. In Proceedings of 31st Annual International Symposium on Computer Architecture (ISCA’04), München, Germany, pages 19-23, June 2004. [ Paper: pdf ]
lazy version management and lazy conflict detection

Unbounded transactions

23.    Colin Blundell, Joe Devietti, E Christopher Lewis, and Milo Martin. Making the Fast Case Common and the Uncommon Case Simple in Unbounded Transactional Memory. In International Symposium on Computer Architecture, June 2007. [ Paper: pdf ]

24.    C. Scott Ananian, Krste Asanović, Bradley C. Kuszmaul, Charles E. Leiserson, and Sean Lie. Unbounded transactional memory. In Proceedings of 11th International Symposium on High-Performance Computer Architecture(HPCA’05), San Franscisco, California, USA, pages 316-327, 2005. [ Paper: pdf ]
first TM proposal to support unbounded transactions (in both size and duration)
maintains its transactional state in a single, shared, memory-resident data structure called the xstate(single, shared, memory-resident data structure): logs(transactions; blocks in memory)
UTM: eager version management; eager conflict detection
LTM: lazy version management; eager conflict detection
overflow:

25.    Ravi Rajwar, Maurice Herlihy, and Konrad Lai. Virtualizing transactional memory. In Proceedings of 32nd Annual International Symposium on Computer Architecture (ISCA’05), Washington, DC, USA, pages 494-505, 2005. [ Paper: pdf ]
XADT(tracks overflowed transactional state, shared data structure èthe virtual address space)
lazy version management; eager conflict detection
two caching mechanisms to reduce expensive walks of the XADT:
1) counting-Bloom-filter-based table (the XF) accessed on cache misses to quickly rule out conflicts with other transactions. 2) XADC, to cache XADT entries for blocks that have been accessed by the current transaction

26.     W. Chuang, S. Narayanasamy, G. Venkatesh, J. Sampson, M. V. Biesbrouck, G. Pokam, B. Calder, and O. Colavin. Unbounded Page-Based Transactional Memory. In Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems(ASPLOS’06), pages 347–358, Oct. 2006. [ Paper: pdf ]
associating state with physical addresses at the block granularity but allocating/reallocating this shadow state on a per-page basis; Transaction Access Vector (TAV) lists track data for an entire page

27.    Michelle J. Moravan, Jayaram Bobba, Kevin E. Moore, Luke Yen, Mark D. Hill, Ben Liblit, Michael M. Swift and David A. Wood. Supporting Nested Transactional Memory in LogTM. In Proceedings of International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), October 2006. [ Paper: pdf; Talk: pdf, ppt ]

28.    Kevin E. Moore, Jayaram Bobba, Michelle J. Moravan, Mark D. Hill and David A. Wood. LogTM: Log-based Transactional Memory. In Proceedings of the 12th International Symposium on High Performance Computer Architecture (HPCA), February 2006.  [Paper: pdf; Talk: ppt, pdf ]
eager version management; eager conflict detection
a per-thread transaction log in cacheable virtual memory,

29.    Jayaram Bobba, Kevin E. Moore, Haris Volos, Luke Yen, Mark D. Hill, Michael M. Swift, and David A. Wood. Performance Pathologies in Hardware Transactional Memory. In Proceedings of International Symposium on Computer Architecture (ISCA), June 2007.  [ Paper: pdf ]

30.    Colin Blundell, E Christopher Lewis, and Milo Martin. Unrestriced Transactional Memory: Supporting I/O and System Calls within Transactions. Technical Report CIS-06-09, Department of Computer and Information Science, University of Pennsylvania, Philadelphia, PA, April 2006. [ Paper: pdf ]

31.    Maurice Herlihy and J. Eliot B. Moss. Transactional memory: architectural support for lock-free data structures. In Proceedings of International Symposium on Computer Architecture(ISCA’93), pages 289-300, 1993. [ Paper: pdf ]  (First paper of TM)
leverage the existing on-chip caches and cache coherence protocol
detecting conflicts at cache-block granularity

HyTM

32.    Sanjeev Kumar, Michael Chu, Christopher J. Hughes, Partha Kundu, Anthony Nguyen. Hybrid transactional Memory. In Proceedings of 11th ACM SIGPLAN 2006 Symposium on Principles and Practice of Parallel Programming (PPoPP’06), New York, USA, March 2006. [ Paper: pdf, Talk: ppt ]

33.    Mark Moir. HybridTM: integrating hardware and software transactional memory. Technical Report, Archivist 2004-0661, Sun Microsystems Research, August 2004. [ Paper: pdf ]

Comp

34.    Yang Ni, Vijay Menon, Ali-Reza Adl-Tabatabai et.al. Open Nesting in Software Transactional Memory. In Proceedings of 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’07), San Jose, California, USA, March 2007. [ Paper: pdf]
Open nesting

35.    Tatiana Shpeisman, Vijay Menon, Ali-Reza Adl-Tabatabai, Steve Balensiefer, Dan Grossman, Richard Hudson, Katherine F. Moore, Bratin Saha. Enforcing Isolation and Ordering in STM. In Proceedings of ACM Conference on Programming Language Design and Implementation (PLDI’07), San Diego, CA, June 2007. [ Paper: pdf ]
Weak atomicityàStrong atomicity
add read or write barriers into a nontransactional code,
use dynamic escape analysis, whole program analysis techniques to optimize the barriers

Atomic section (pessimistic concurrent control)

36.    B. McCloskey, F. Zhou, D. Gay, and E. Brewer. Autolocker: synchronization inference for atomic sections. In Proceedings of 33rd Annual ACM SIGPLAN Symposium on Principles of Programming Languages (POPL’06), Charleston, USA, pages 346-358, Jan. 2006. [ Paper: pdf ]

37.    Yuan Zhang, Joseph Manzano and Guang R. Gao. Atomic section: concept and implementation. In Proceedings of Mid-Atlantic Student Workshop on Programming Languages and Systems (MASPLAS '05), Newark, Delaware, USA, April 30, 2005. [ Paper: pdf ]

TM-Semantics

The papers listed below mainly focus on the semantics of transactions classified into three categories: formalization of TM, atomicity of TM and isolation of TM.

TM-Semantics-Formalization

38.    Katherine F. Moore and Dan Grossman. High-level small-step operational semantics for transactions. In The Second ACM SIGPLAN Workshop on Transactional Computing, Portland, Oregon, August 16, 2007. (transact’07). [ Paper: pdf ]

[Description] Moore and Grossman have presented type systems the study the behaviors of spawning threads in transactional programs and made assurance that if each mutable memory location is used outside transactions or inside transactions (but not both) then strong and weak atomicity are indistinguishable. They present the semantics of transactions for a λ-calculus. However, their model for transaction is too simple (allows at most one transaction executing at a time), and they use two type system to deal with threads spawning and atomicity comparing respect. Also they do not mention how to deal with the problems occur due to weak atomicity.

39.    Ben Liblit. An Operational Semantics for LogTM. Univ. of Wisconsin Computer Sciences Technical Report CS-TR-2006-1571, August 2006. [ Technical Report: pdf ]

[Description] Liblit defines a detailed operational semantics for the LogTM hardware. This semantics models the creation and termination of threads, the execution of transactional and non-transactional memory accesses, and the use of open-nested and closed-nested transactions. The semantics implements strong atomicity. A memory access is not permitted to execute if it would conflict with a concurrent transaction; non-transacted operations are “stalled” until they may run without conflict. Commit and roll-back are both modeled as single transitions. Liblit models the interleaving of memory accesses within transactions , but no formal results are shown.

40.    Michael L. Scott. Sequential specification of transactional memory semantics. In Proceedings of 1st ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing(TRANSACT), held in conjunction with PLDI, Ottawa, Ontario, Canada, June 2006. [ Paper: pdf ]

[Description]Michael L. Scott presents a framework for transactional semantics that makes inconsistent reads and writes explicit (requiring a correct implementation to abort transactions performing such operations). This detail allows definitions regarding when a transaction must succeed. Scott considers only a total order on all memory operations, i.e., sequential consistency.

41.    Tim Harris and Simon Peyton Jones. Transactional memory with data invariants. In The First ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT’06), Ottawa, Canada, June 2006. [ Paper: pdf ]

[Description] Tim Harris and Simon Peyton Jones introduce a mechanism for asserting invariants that are maintained by a program that uses atomic memory transactions. The idea is simple: a programmer writes check E where E is an expression that should be preserved by every atomic update for the remainder of the program’s execution. They have extended STM Haskell to dynamically evaluate check statements atomically with the user’s updates: the result is that we can identify precisely which update is the first one to break an invariant.

42.    Tim Harris, Maurice Herlihy, Simon Marlow, and Simon Peyton- Jones. Composable memory transactions. In Proceedings of the ACM Symposium on Principles and Practice of Parallel Programming, pages 48–60, Jun 2005. [ Paper: pdf ]

[Description] Harris et al. present an operational semantics for STM Haskell. Like Dan Grossman’s work, it is high-level, with only one transaction executing at a time. However, the semantics is layered such that an entire transaction occurs as one step at the outer layer, essentially using a large-step model for transactions that does not lend itself to investigating nested parallelism nor weak isolation. In this idealized semantics, only one thread executes at a time, which precludes considering a memory model weaker than sequential consistency.

43.    Paweł T. Wojciechowski. Isolation-only transactions by typing and versioning. In Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming, pages 70–81, New York, NY, USA, 2005. ACM Press. [ Paper: pdf ]

[Description] Wojciechowski proves isolation for a formal language where transactions with nested parallelism (called tasks in the work) explicitly acquire locks before accessing data and the beginning of the task must declare all the locks it might acquire. Explicit locking and version counters leads to a lower-level model and an effect system that is an extension of lock types. The main theorem essentially proves a particular low-level rollback-free transaction mechanism correct.

44.    Suresh Jagannathan, Jan Vitek, Adam Welc, and Antony L. Hosking. A transactional object calculus. Science of Computer Programming, August 2005. [ Paper: pdf ]

Jan Vitek, Suresh Jagannathan, Adam Welc, and Antony L. Hosking. A semantic framework for designer transactions. In Proceedings of the European Symposium on Programming, volume 2986 of Lecture Notes in Computer Science, pages 249–263. Springer-Verlag, 2004. [ Paper: pdf ]

[Description] Jagannathan et al. define TFJ an extension to Featherweight Java. They model a richer source language where transactions include internal fork-join parallelism, and they explore two implementations based on optimistic concurrency control and on two-phase locking. Although steps of the executions of transactions can be interleaved, all TFJ memory accesses are made transactionally, so the problems produced by interleaving between transactional and non-transactional code do not occur.

TM-Semantics-Atomicity

45.    Colin Blundell, E Christopher Lewis and Milo M. K. Martin. Subtleties of Transactional Memory Atomicity Semantics. IEEE Computer Architecture Letters. 5(2), 2006.  [ Paper: pdf ]

[Description] Blundell et al. coined the terms strong and weak to distinguish whether non-transactional code could examine midtransaction state. They showed that neither semantics subsumes the other (e.g., each allows some programs to terminate that the other does not).

46.    Colin Blundell, E Christopher Lewis and Milo M. K. Martin. Deconstructing transactional semantics: the subtleties of atomicity. In Proceedings of Annual Workshop on Duplicating, Deconstructing, and Debunking (WDDD’05), June 2005. [ Paper: pdf ]

 

TM-Semantics-Isolation

Performance Isolation: describes the degree to which a machine can prevent the behavior of one thread (or process) from impacting the performance of another thread.

47.    B. Verghese, A. Gupta, and M. Rosenblum. Performance isolation: Sharing and isolation in shared-memory multiprocessors. In Proceedings of the Eighth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 181-192, Oct. 1998. [ Paper: pdf ]

48.    Craig Zilles and David H. Flint. Challenges to Providing Performance Isolation in Transactional Memories. In Proceedings of Annual Workshop on Duplicating, Deconstructing, and Debunking (WDDD’05), June 2005. [ Paper: pdf ]

Languages

49.    Brian D. Carlstrom, Austen McDonald, Hassan Chafi et al. The Atomos transactional programming language. In Proceedings of ACM SIGPLAN 2006 Conference on Programming Language Design and Implementation(PLDI’06), Ottawa, Canada, June 2006. [ Paper: pdf ]

50.    Report on the experimental language X10. Draft V 1.01, Dec. 2006. [ Paper: pdf ]

51.    Cray Inc. Chapel specification 0.4. Feb. 2005. [ Paper: pdf ]

52.    Eric Allen, David Chase, et al. The Fortress language specification(v1.0 b), Sun Microsystems, Inc., March 6, 2006. [ Paper: pdf ]

53.    Tim Sweeney. The next mainstream programming language: a game developer's perspective. In 33rd Annual ACM SIGPLAN Symposium on Principles of Programming Languages(POPL’06), Invited talk, Charleston, USA, Jan. 2006.

54.    P. Wojciechowski. Isolation-only Transactions by Typing and Versioning. In Proceedings of the 7th ACM SIGPLAN international conference on Principles and Practice of Declarative Programming (PPDP), pages 70–81, July 2005.


Maintained by Yu Zhang, Ming Fu, and Lei Zhao

Last Modified: 8/6/2007 1:25 PM