Software Transactional Memory
Transactional Memory has been proposed as an alternative to synchronization using mutual exclusion locks. It eliminates problems such as deadlocks and lack of composability.
Keywords:
Transaction.
linearization, serialization, atomicity, synchronization, coherency.
Strong and weak atomicity.
visible and invisible read.
visible and invisible write.
Read write Conflicts (Contention).
Irrevocable transactions.
Language integration.
STM systems
TinySTM
TinySTM is a lightweight and efficient Software Transactional Memory implementation in C.
Official website
LSA-STM
Timestamp based STM using Java.
Official website
DSTM2
DSTM2 is a Java library that provides a flexible framework for different implementations of Software Transactional Memory. Unlike many other transactional memory implementations it does not rely on special hardware or language support. Using reflective code generation, autoboxing and generics, it applies provides an easy-to-use API that can be used without the need for external tools.
M. Herlihy, V. Luchangco, and M. Moir
Download DSTM2 framework
A Flexible Framework for Implementing Software Transactional Memory PDF
TL2
Transactional Locking II
Dave Dice, Ori Shalev, Nir Shavit
Proceedings of the 20th International Symposium on Distributed Computing (DISC), Stockholm, Sweeden, Sept. 2006.
PDF
TL2 x86 can be downloaded from STAMP homepage.
XSTM
XSTM is an open source library which enables high performance object replication between processes. It is an object oriented Distributed Shared Memory, or a Distributed Object Cache.
Object are modified using transactions (XSTM is an extended software transactional memory).
JSTM is the Java version and NSTM is the .Net version.
XSTM Homepage
FSTM
Fraser's STM
RSTM
Rochester Software Transactional Memory
RSTM is a C++ library for multithreaded, nonblocking transaction-based code. RSTM is a research prototype, but has been successfully tested on a variety of benchmarks and applications.
RSTM Homepage
ASTM
Adaptive Software Transactional Memory
Virendra J. Marathe, William N. Scherer III, and Michael L. Scott.
In Proceedings of the 19th International Symposium on Distributed Computing (DISC'05), September 2005.
PDF
SwissTM
"an STM that has the goal of performing particularly well with realistic workloads, with various transaction sizes and mixed access pattern, while still achieving good performance in more traditional microbenchmarks"
SwissTM Homepage
NZTM
Nonblocking Zero-Indirection Transactional Memory
Fuad Tabba, Cong Wang, James R. Goodman, and Mark Moir
PDF
PhTM: Phased Transactional Memory
Yossi Lev, Mark Moir, and Dan Nussbaum
PDF
Elastic Transaction
Vincent Gramoli, Pascal Felber and Rachid Guerraoui
Homepage
Benchmarks for STM
STAMP
STAMP is a new benchmark suite designed for Transactional Memory
research. It currently consists of five benchmarks with plans for
more.
STAMP Homepage
STMBench7
QuakeTM
QuakeTM is the first complex, real world application that was parallelized from sequential version using transactional memory.
Homepage
Patch for LLVM/TANGER
STM support
OpenTM
OpenTM is a high-level application programming interface (API) that extends
OpenMP with memory transactions. The OpenTM environment is derived from GCC
and GNU OpenMP (GOMP). It supports hardware, software, and hybrid TM systems
and can be extended to support other TM systems.
OpenTM Homepage

