Code Monkey home page Code Monkey logo

stamp's Introduction

stamp

                ____    _____      _      __  __   ____
               / ___|  |_   _|    / \    |  \/  | |  _ \
               \___ \    | |     / _ \   | |\/| | | |_) |
                ___) |   | |    / ___ \  | |  | | |  __/
               |____/    |_|   /_/   \_\ |_|  |_| |_|

        Stanford Transactional Applications for Multi-Processing

                       http://stamp.stanford.edu
           Announce List: [email protected]
              General List: [email protected]
             Contact: [email protected]

Introduction

The Stanford Transactional Applications for Multi-Processors (STAMP) is a collection of applications well suited for transactional memory research. For each application, STAMP includes sequential code, parallel code that uses coarse-grain transactions, and reference data sets. We provide transactional code for both HTM and STM systems, and provide an STM system based on TL2 [3]. A characterization of the applications is given in [1] and [2].

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.

If you use STAMP in your work, please cite [1]. Thanks for using STAMP!

Distribution Contents

This directory contains the following items:

AUTHORS ----- A list of people who have contributed to STAMP
LICENSE ----- BSD-style license; if you use STAMP, please let us know
README ------ This file
VERSIONS ---- Revision history
bayes/ ------ Bayesian network structure learning benchmark  
common/ ----- Common Makefile variables and rules
labyrinth/ -- Maze routing benchmark
lib/ -------- Common libraries (data structures, etc.)
genome/ ----- Gene sequencing benchmark
intruder/ --- Network intrusion detectino benchmark
kmeans/ ----- K-means clustering benchmark
ssca2/ ------ Graph kernel benchmark
vacation/ --- Travel reservation system benchmark
yada/ ------- Delaunay mesh refinement benchmark

Each of the benchmarks contains a README file that has a description of the program and inputs and instructions for compilation and running. There are different Makefiles to build different flavors (e.g., sequential, stm, etc.).

To adapt the benchmarks for a particular TM system, change lib/tm*. These files contain documentation on the purpose and usage of each of the macros.

For general compilation changes (e.g., choice of compiler), edit common/*.

Platforms

STAMP has 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.

References

[1] C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford Transactional Applications for Multi-processing. In IISWC '08: Proceedings of The IEEE International Symposium on Workload Characterization, September 2008.

[2] C. Cao Minh, M. Trautmann, J. Chung, A. McDonald, N. Bronson, J. Casper, C. Kozyrakis, and K. Olukotun. An Effective Hybrid Transactional Memory System with Strong Isolation Guarantees. In Proceedings of the 34th Annual International Symposium on Computer Architecture, 2007.

[2] D. Dice, O. Shalev, and N. Shavit. Transactional Locking II. In Proceedings of the 20th International Symposium on Distributed Computing (DISC), 2006.

stamp's People

Contributors

kozyraki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

stamp's Issues

Segmentation fault within the intruder benchmark

I have found that the intruder application sometimes crashes unexpectedly while running the benchmark itself. The issue seems to be rooted within or closely related to a transaction as the memory management error only happens sporadically. To reproduce it for this issue I ran the intruder++ set in a loop. The output is not very telling, sadly:

TL2 system ready: GV=GV4
Percent attack  = 10
Max data length = 128
Num flow        = 262144
Random seed     = 1
Num attack      = 29395
Segmentation fault
reproduce_crash.sh: line 7: 23396 Aborted                 (core dumped) ./intruder -t8 -a10 -l128 -n262144 -s1

assertion failures in labyrinth benchmark

Hello all,

I am running into an assertion error when I run the labryrinth benchmark with the input file recommended for simulated runs:

./labyrinth -i inputs/random-x32-y32-z3-n96.txt
labyrinth: maze.c:224: maze_read: Assertion `status == TRUE' failed.
Aborted (core dumped)

Haven't gone through the source code in detail, but it looks like the list insertion isn't happening correctly.

Note that this is the sequential flavor of labyrinth which has been built via

make -f Makefile.seq

Labyrinth application sometimes yields incorrect results

I've recently used the benchmark suite in a scientific work and for this I ran the labyrinth benchmark in the configurations given in the original STAMP paper [0], using the tl2 framework.
I found that the labyrinth application sometimes yields incorrect results, causing the program to crash:

[felix@python]: ./labyrinth -t 4 -i inputs/random-x32-y32-z3-n96.txt
TL2 system ready: GV=GV4
Maze dimensions = 32 x 32 x 3
Paths to route  = 96
Paths routed    = 60
Elapsed time    = 0.008575 seconds
labyrinth: labyrinth.c:248: main: Assertion `status == TRUE' failed.
[1]    21897 abort (core dumped)  ./labyrinth -t 4 -i inputs/random-x32-y32-z3-n96.txt

Is this a known issue? Unfortunately, I have not been able to allocate time to trace the bug, but I wanted to let others know that this exists, so that others won't be surprised by this.


[0] Minh, Chi Cao, et al. "STAMP: Stanford transactional applications for multi-processing." 2008 IEEE International Symposium on Workload Characterization. IEEE, 2008.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.