Stanford Transactional Applications for Multi-Processing

What is STAMP?

STAMP is a new benchmark suite designed for Transactional Memory research. It currently consists of eight benchmarks with plans for more.

  • bayes: Bayesian network learning
  • genome: gene sequencing
  • intruder: network intrusion detection
  • kmeans: K-means clustering
  • labyrinth: maze routing
  • ssca2: graph kernels
  • vacation: client/server travel reservation system
  • yada: Delaunay mesh refinement (Ruppert's algorithm)

Please cite [1] if you use STAMP.

More Info...

For each application, the suite includes sequential code in C and parallel code that uses coarse-grain transactions. Each application's README also describes an input data set suitable for TM simulators and an input data set suitable for TM systems onreal machines. Two of the applications, kmeans and vacation, also have descriptions for inputs with low contention and inputs with high contention.

We provide transactional code for both HTM and STM systems and provide an STM system based on TL2 [3].

The STAMP applications first appeared in [2] and a detailed characterization is contained in [1].

We are currently working on additional STAMP applications and welcome your feedback, corrections, and suggestions. If you make some improvements to STAMP, we would appreciate receiving a copy that we can include in the next release.

Contact Us

Email us at

Mailing Lists

  • Announce: For notices on updates to STAMP
  • Users: For general discussion on STAMP


STAMP and TL2-x86 have been tested on Ubuntu 6, Ubuntu 7, Fedora Core 5, Fedora Core 6, CentOS 4, and CentOS 5, on both 32-bit i386 and 64-bit x86_64 architectures.


STAMP and TL2-x86 are maintained by:

  • Chi Cao Minh

The following people have contributed to STAMP:

  • TCC Group: Woongki Baek, Nathan Grasso Bronson, Austen McDonald, Chi Cao Minh, Jared Casper, Brian D. Carlstrom, Jae Woong Chung, Christos Kozyrakis, Kunle Olukotun, Martin Trautmann
  • bayes/sort: Michael Ringgaard
  • kmeans: Wei-keng Liao, Brendan McCane, Jay Pisharath
  • lib/avltree: Julienne Walker
  • lib/mt19937ar: Makoto Matsumoto, Takuji Nishimura
  • lib/rbtree: Dave Dice, Ori Shalev, Nir Shavit
  • ssca2: David A. Bader, Kamesh Madduri

TL2-x86 was created by Chi Cao Minh. TL2-x86 is derived from TL2, which was created by Dave Dice, Ori Shalev, and Nir Shavit.


The current releases for STAMP and TL2-x86.

  • STAMP 0.9.10 8 Sept 2008 (62 MB)
    • Bug fixes:
      • bayes:
        • Fixed score calculation for reverse operation
        • Workaround for crash during clean up phase on 64-bit
      • genome:
        • Fixing type for global_i in normal.c
      • lib/bitmap:
        • Fixing type identifiers for constants (64-bit compatibility)
      • lib/heap:
        • Adding missed annotation for heap_remove
  • TL2-x86 0.9.6 8 Sept 2008 (32 KB)
    • Disabling local write barriers (STM_LOCAL_WRITE_*) in stm.h
All releases

STAMP is distributed with a BSD license, and is provided as is without any guarantees of any kind. Unless otherwise noted in the source files, the copyright is held by Stanford University.

TL2-x86 is distributed with a BSD license, and is provided as is without any guarantees of any kind. The copyright is held by Sun Microsystems, Inc.

STAMP is based on work supported by the National Science Foundation under Grant No. 0444470.

[1] STAMP: Stanford Transactional Applications for Multi-Processing
Chi Cao Minh, JaeWoong Chung, Christos Kozyrakis, Kunle Olukotun
In IISWC '08: Proceedings of The IEEE International Symposium on Workload Characterization, Sept. 2008.
[Paper PDF] [BibTeX]
[2] An Effective Hybrid Transactional Memory System with Strong Isolation Guarantees
Chi Cao Minh, Martin Trautmann, JaeWoong Chung, Austen McDonald, Nathan Bronson, Jared Casper, Christos Kozyrakis, Kunle Olukotun
Proceedings of the 34th Annual International Symposium on Computer Architecture, San Diego, California, 9-13 June 2007.
[Paper PDF] [BibTeX]
[3] Transactional Locking II
Dave Dice, Ori Shalev, Nir Shavit
Proceedings of the 20th International Symposium on Distributed Computing (DISC), Stockholm, Sweeden, Sept. 2006.
Last Modified: 8 December 2010