Université
de Neuchâtel
Logo UniNE
 
 
   UniNE > IIUN annuaire | plan du site | accès | contact  

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

Homepage

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

GCC for Transactional Memory

Homepage
GCC SVN Branch

Intel C++ STM Compiler

Intel C++ STM Compiler Homepage