Barcelona Transactional Memory Application Suite

BSC-MSRC Software and Tools Download BSCMSR Centre has released their Barcelona Transactional Memory (TM) application suite for download. While TM is a very active research topic, few concurrent programs were written to use TM. There is a clear need to have more TM applications that could aid researchers in their work. Some of the Barcelona TM suite applications are of considerable size and complexity and took 12 programmer man months to develop. The applications exhibit useful properties such as transactional nesting, use of I/O, and large read/write sets. We hope that making the Barcelona TM application suite available for download will facilitate further TM research.

The Barcelona TM application suite has 5 components. We have both C,C++ and Haskell applications. The Haskell STM benchmark is composed of several applications developed in the Centre as well as applications written by independent programmers. On the C,C++ side, our flagship application is Quake game. Atomic Quake was developed from a lock-based parallel version, while QuakeTM was parallelized from scratch using OpenMP and TM. Wormbench is a customizable and configurable application that can test various aspects of TM system design, and RMS-TM are a suite of applications that are chosen for their scalability from the Recognition, Mining and Synthesis (RMS) domain.


DaSH is a comprehensive benchmark suite for hybrid dataflow and shared memory programming models.

C, C++ Applications

C# version of Genome application from STAMP transactional memory application suite.

QuakeTM is the first complex, real world application that was parallelized from sequential version using transactional memory.

RMS-TM is a new TM benchmark suite that uses Recognition, Mining and Synthesis (RMS) applications.

Atomic Quake is derived from a parallel version of Quake World. In Atomic Quake server, critical sections are implemented using transactional memory – atomic blocks.

WormBench is a configurable transactional application designated to evaluate the performance of TM systems. The main data structures in the application are WormBench and Worms.

Haskell Applications

 The Haskell STM Benchmark brings together a collection of Haskell programs written using Software Transactional Memory that have been used as a benchmark in the following studies: