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
simpleElementExample3Active14.0Examples for building, running, parameterizing, etc. simulations and elements
simpleExternalElement3Active14.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
ember3Active14.0Communication motifs for network simulations
firefly3Active14.0Low-level communication protocol for use with system network simulations
hermes3Active14.0Interface to message passing functions for system network simulations
iris1Active14.0Communication middleware targeting the Mercury simulation environment
macro3Maintenance14.0Simulation of coarse-grain distributed memory applications
mask-mpi3Active14.0An MPI implementation which targets the SUMI (see Iris) interface
mercury1Active14.0Support for workload/application models
thornhill1Maintenance14.0Support library for detailed endpoint models in Ember
zodiac1Maintenance14.0Trace-based endpoints for network simulation

Networks

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

Processors

Element NameMaturityDev PathLast ReleaseDescription
ariel3Active14.0Dynamic trace-based model leveraging PIN to execute x86 binaries
balar2Active14.0GPU component based on GPGPU-Sim
gensa1Active14.0Neuromorphic processor
juno2Maintenance14.0Example pipeline processor model with a custom ISA
llyr1ActiveNeverA spatial compute accelerator model
miranda3Active14.0Processor driven by a state machine to generate memory instructions
prospero2Active14.0Processor that reads a trace from file
serrano1ExperimentalNeverCoarse-grain reconfigurable processor model
vanadis2Active14.0Core pipeline model supporting RISC-V and MIPS

Cache and Memory System

Element NameMaturityDev PathLast ReleaseDescription
cacheTracer1Maintenance14.0Intercepts cache accesses for observation
cassini2Active14.0Prefetchers and other memory system plug-in modules
cramSim2Maintenance14.0Memory model from IBM - DDR, HBM
memHierarchy3Active14.0Memory system components including caches, directories, and memory controllers and models
messier2Active14.0Provides a detailed model for NVM-based DIMMs with high-end internal controller
mmu1Active14.0A basic TLB/MMU implementation that works with Vanadis
opal1ActiveNeverMemory allocation support for multi-node simulations using Ariel
rdmaNic1Active14.0Facilitates RDMA in conjunction with Vanadis
samba2Maintenance14.0A detailed memory management unit (MMU) model
vaultsim3Maintenance14.0Models a vaulted memory architecture

Other/Miscellaneous

Element NameMaturityDev PathLast ReleaseDescription
osseous1ActiveNeverSupports generation of SST components from RTL via Essent