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]. Alternatively, OpenTM, a high-level API that extends OpenMP with memory transactions, can be used with STAMP.

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 stamp-users-owner@lists.stanford.edu.

Mailing Lists

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

Platforms

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.

Authors

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.

Download

The current releases for STAMP and TL2-x86.

  • STAMP 0.9.9 18 June 2008 (62 MB)
    • Added three more benchmarks:
      • intruder: network intrusion detection
      • ssca2: graph kernels
      • yada: Delaunay mesh refinement
    • Updated READMEs with new arguments and references
    • bayes
      • Fixed missing use of transactional list iterator
    • genome
      • Use iterator functions to traverse linked lists
    • vacation
      • Removed unnecessary read barrier in customer.c
    • lib/rbtree
      • Support pointers to arbitrary keys and values instead of assuming longs
  • TL2-x86 0.9.5 20 May 2008 (32 KB)
    • Support for OpenTM
    • Option to disable contention management (-DTL2_NOCM)
    • Fixed memory leak in TxFreeThread
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.

References
[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.
[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: 18 June 2008