|
Exploring novel computer system designs involves
modification of both programming models and hardware organization.
This exploration is frequently made difficult by the lack of compiler
tools, well defined ISA features, or complete microarchitectural
definitions. Premature definition of hardware or software limits the
flexibility of the other. However, without such assumptions, neither
software or hardware can progress. A key goal is to allow programming
models and the underlying hardware to evolve separately, while
allowing feedback between them.
The Structural Simulation Toolkit (SST) was developed to explore
innovations in highly concurrent systems where the ISA,
microarchtecture, and memory interact with the programming model and
communications system. The package provides two novel capabilities.
The first is a fully modular design that enables extensive exploration
of an individual system parameter without the need for intrusive
changes to the simulator. The second is an explicit separation of
instruction interpretation from microarchitectural timing to eliminate
the immediate need for a new tool chain. Furthermore, a hybrid
discrete event and time-stepping simulation framework is used to
capture system wide effects (such as interprocessor communications)
while maintaining high performance. The framework has been
successfully used to model concepts ranging from processing in memory
to conventional processors connected by conventional network
interfaces and running MPI.
SST Mailing List
Sandia hosts a mailing list to disscuss SST issues. To subscribe to
the Sandia SST List, please email majorodomo@sandia.gov:
Plaforms & Requirements
To compile and run the SST you will require:
- A UNIX-like shell (the SST uses the GNU Autotools)
- GNU Make
- C++ Compiler
- Python (to run regression suite)
The SST is currently being ported to new platforms. To fully use
the execution based front-end, you will require a PPC compiler capable
of producing statically linked MachO binaries (the standard MacOS
binary format).
| Front-end Compatibility
|
|---|
| | PPC Execution | PPC Traces
|
|---|
| MacOS/ppc
| YES
| YES
|
| MacOS/x86
| YES*
| YES
|
| Linux/x86
| NO
| YES
* Under Rosetta emulation
|
Installation
Detailed installation directions for the SST are included in the README file in the distribution (see the link on the left). The README includes how to:
- Build the SST
- Install Libraries
- Run Regressions
- Build SST's libc
- Build the Internals Documentation
Brief instructions are included below. Building the SST
1. First, uncompress and enter the directory:
gunzip sst-1.0.tar.gz
tar xvf sst-1.0.tar
cd sst-1.0
2. Run the included config script. The configuration script consults a
variety of enviornment variables to select its default compiler and
compile flags. You can type ./configure --help=recursive
for a full list of the variables. Usually, the key one to set is
CXXFLAGS, which determines the C++ compile variables. For
example, to debug the simulator:
setenv CXXFLAGS -g
Or, for high performance on a G5:
setenv CXXFLAGS "-fast -mdynamic-no-pic"
Or, to run the simulator on an x86 Mac [NOTE: On MacOS, straight x86
compiliation is not yet supported at this time.}:
setenv CXXFLAGS "-arch ppc"
setenv CFLAGS "-arch ppc"
Once you have set the necessary config variables, run the config script.
./configure --prefix=<install path>
where <install path> is the path to where you would like the
binaries to be installed.
3. After configure, you can build the simulator:
make
4. (optional) Install the simulator binaries and documentation:
make install
this will place binaries and documentation in the install path.
<install path>/bin/serialProto
<install path>/doc/docInternals.ps
<install path>/doc/simSum.pdf
Top of page
|