SMTSIM Version 2.0alpha

The SMTSIM Multithreading Simulator was written by Dean M. Tullsen with significant assistance from Jack Lo, Gun Sirer and (unbeknownst to him) Jim Larus.

Although Susan Eggers, Hank Levy, Joel Emer, and Rebecca Stamm never actually got their hands dirty in the code, they each influenced parts of it.

This code is provided "as is" with no promise of support whatsoever, but please do send bug reports (especially solved bugs!) to me.

When using the simulator to produce published research, please cite it with:

Simulation and Modeling of a Simultaneous Multithreading Processor,
D.M. Tullsen,In the 22nd Annual Computer Measurement Group Conference,
December, 1996


Simultaneous Multithreading: Maximizing On-Chip Parallelism, D.M. Tullsen,
S.J. Eggers, and H.M. Levy, In 22nd Annual International Symposium on
Computer Architecture, June, 1995. (also reprinted in 25 Years of the
International Symposia on Computer Architecture: Selected Papers, 1998, if
you'd prefer).

The SMTSIM simulator has only been tested on Compaq/Digital Unix Alphas and Linux-based x86 machines. Please let me know if you successfully port it to another system.  It runs unmodified (but compiled with a couple of specific flags) Alpha object code.

Here it is:  SMTSIM version 2.0alpha

It has become harder to generate executables, as the Alphas themselves become harder to find.  So here are some sample SPEC 2000 executables to get you started.

People often ask about running parallel code.  Here is a very simple example, which must be compiled with gcc, that demonstrates the basic smtsim synchronization primitives.

When you do take the simulator, please drop me a note so I can keep track of who has it.

One rewrite of this simulator was funded by NSF Career Award MIP-9701708.

If you have comments or suggestions, email me at tullsen (a) cs dot ucsd dot edu