Skip to main content

SST Elements

SST Element libraries contain components, subcomponents, modules, and other SST objects that can be used to build a simulation.

SST Community Libraries

The pages in this area describe the libraries available from the SST project. Many other libraries are available, check out the community page.

SST Project Libraries

Most SST-provided element libraries are located in the sst-elements repository, though a few are in separate repositories. The libraries range from early-stage models with limited functionality to those that are mature and extensively tested. In addition, we categorize elements by development activity and planned trajectory ("development path").

SST elements are categorized according to maturity and development path.
Maturity Reliability Testing Documentation
Early Development (1) An element in its initial stages of development. "Alpha" quality. May be unreliable. The APIs and behavior of the element may change and the element should not be considered stable yet. Configurations outside those tested may fail to work. None required. Tests may produce unreliable and/or unreproducible results. None required.
Prototype (2) The element's basic functionality is in place, but many features are still being developed. The element is usable within tested configurations but may not work outside of those. "Beta" quality. Somewhat reliable. APIs and implementations may change suddenly as development progresses. Bugs may be encountered outside of tested configurations. Required. Passes basic functionality testing. Builds reliably as part of overnight project builds. Required. Documentation may be limited to a statement of the element's use and behavior.
Mature (3) The element's major capabilities are stable, reliable, and reasonably well-tested although performance enhancements, validation, and new features may be on-going. Reliable. The element's major features are stable, tested, and in some cases, validated. Major and/or breaking changes are communicated to users in advance (e.g., deprecation warnings, release notes, etc.). Required. Has undergone substantial capability testing. Builds reliably as part of overnight project builds. Required. More extensive than that of prototype elements.

sst-info

All Element libraries, whether provided via the SST repos or from the community, export certain Element Library Information (ELI) that can be queried at the command line using the sst-info utility. This information includes a basic description of each element (i.e., component, subcomponent, module, etc.) within the library as well the parameters, statistics, and ports available for the element. Elements that implement interfaces (e.g., subcomponents, modules, etc.) also declare which interface they implement. The documentation here supplements sst-info's basic information and provides context, implementation details, and configuration hints.

SST-Elements Repository Structure

The root directory of sst-elements contains a number of subdirectories as well as a brief README, License, and contributor information. The element source code lies in the sst-elements/src/sst/elements subdirectory. Each library has its own directory in this location. Generally, it is the convention for libraries to include their set of tests in a tests subdirectory.

SST Elements

Elements range from experimental to mature. Most of the elements below reside in the sst-elements repository, but a few are in standalone repositories. All are available via the sstsimulator repositories while only the "released" libraries are available from the release tarballs.

Examples

Element NameMaturityDev PathLast ReleaseDescription
simpleElementExample3Active15.0Examples for building, running, parameterizing, etc. simulations and elements
simpleExternalElement3Active15.0Example of an element library external to the sst-elements repository
simpleSimulation3Maintenance12.1Example simulation components that simulate cars going through a carwash

Network Endpoints

These models are generally used to drive networks at system scales where detailed cycle-level processor modeling become prohibitively time-consuming.

Element NameMaturityDev PathLast ReleaseDescription
ember3Active15.0Communication motifs for network simulations
firefly3Active15.0Low-level communication protocol for use with system network simulations
hermes3Active15.0Interface to message passing functions for system network simulations
iris1Active15.0Communication middleware targeting the Mercury simulation environment
macro3Maintenance15.0Simulation of coarse-grain distributed memory applications
mask-mpi3Active15.0An MPI implementation which targets the SUMI (see Iris) interface
mercury1Active15.0Support for workload/application models
thornhill1Maintenance15.0Support library for detailed endpoint models in Ember
zodiac1Maintenance15.0Trace-based endpoints for network simulation

Networks

Element NameMaturityDev PathLast ReleaseDescription
kingsley2Active15.0Simulates a mesh network-on-chip
merlin3Active15.0Router model with flexible topology modules to simulate networks.
shogun2Active15.0Provides a simple crossbar model

Processors and Accelerators

Element NameMaturityDev PathLast ReleaseDescription
ariel3Active15.0Dynamic trace-based model leveraging PIN to execute x86 binaries
balar2Active15.0GPU component based on GPGPU-Sim
gensa1Active15.0Neuromorphic processor
golem2Active15.0Simulation of array-based in situ computing components with optional integration with CrossSim
juno2Maintenance15.0Example pipeline processor model with a custom ISA
llyr1ActiveNeverA spatial compute accelerator model
miranda3Active15.0Processor driven by a state machine to generate memory instructions
prospero2Active15.0Processor that reads a trace from file
serrano1ExperimentalNeverCoarse-grain reconfigurable processor model
vanadis2Active15.0Core pipeline model supporting RISC-V and MIPS

Cache and Memory System

Element NameMaturityDev PathLast ReleaseDescription
cacheTracer1Maintenance15.0Intercepts cache accesses for observation
cassini2Active15.0Prefetchers and other memory system plug-in modules
cramSim2Maintenance15.0Memory model from IBM - DDR, HBM
memHierarchy3Active15.0Memory system components including caches, directories, and memory controllers and models
messier2Active15.0Provides a detailed model for NVM-based DIMMs with high-end internal controller
mmu1Active15.0A basic TLB/MMU implementation that works with Vanadis
opal1ActiveNeverMemory allocation support for multi-node simulations using Ariel
rdmaNic1Active15.0Facilitates RDMA in conjunction with Vanadis
samba2Maintenance15.0A detailed memory management unit (MMU) model
vaultsim3Maintenance15.0Models a vaulted memory architecture

Other/Miscellaneous

Element NameMaturityDev PathLast ReleaseDescription
osseous1Active15.0Supports generation of SST components from RTL via Essent