Home - researcherben/structural-simulation-toolkit GitHub Wiki

The purpose of SST is to provide a framework for discrete event simulation (DES).

See a list of resources for SST

suggested information to include in SST documentation

Do not assume novices understand DES. Provide links to references.

Domains that share the DES label but are not in scope for SST because they feature person-in-the-loop: hospital simulations and military training in aviation.

Alternative DES frameworks and how SST is different

SST as a framework for DES simulators is not focused on a specific problem or domain. Also, SST supports distributed computation using MPI.

Other DES software:

See also https://en.wikipedia.org/wiki/List_of_discrete_event_simulation_software

SST-specific capabilities to include in documentation

  • how to run SST inside container (Docker, Singularity). Available in this repo
  • how to use MPI with SST. Available in this repo
  • how to integrate Python functions with C++ using pybind11. In progress in this repo

DES-specific jargon vs SST-specific jargon

DES-specific jargon

  • A "referent" is the thing being simulated.

SST-specific jargon

  • components are connected to other components via links
  • components are connected to a link via a port
  • composition of components and links is implemented in a "project driver file"
  • a "project driver file" is a Python file that specifies the links and components used in a simulation
  • Messages transmitted among components in SST are labeled as "events".
  • events are transmitted between components via links
  • each component in SST is assigned a clock rate.  On each clock tick, the clock event handler is called.

The components can exchange messages every clock step, and execute an action as appropriate