How sstsimulator/sst-elements works
SST Elements is a modular, MPI-parallel simulation framework for studying interactions among processors, memory, and communication systems. A typical workflow configures a workload and system components, then advances simulated events across component links to model behavior and produce measurements. The graph highlights workload generation, memory and network modeling, and fault injection. Evidence is limited to the README, file tree, and sampled excerpts: several subsystems are represented by their documented or indexed modules, but their internal runtime wiring is not asserted where it was not shown.
Main entry points: emberengine.cc Ember Engine · embergen.h Motif Generator · memEvent.h Memory Events · memHierarchy Memory Hierarchy
Components 22
Workload Modeling
- Ember Engine
src/sst/elements/ember/emberengine.cc - Workload Motifs
src/sst/elements/ember/mpi/motifs - Motif Generator
src/sst/elements/ember/embergen.h
Memory Systems
- Memory Hierarchy
src/sst/elements/memHierarchy - Coherence Controller
src/sst/elements/memHierarchy/coherencemgr/coherenceController.cc - Directory Controller
src/sst/elements/memHierarchy/directoryController.cc - Memory Events
src/sst/elements/memHierarchy/memEvent.h - Memory NIC
src/sst/elements/memHierarchy/memNIC.h - Sieve Cache
src/sst/elements/memHierarchy/Sieve/sieveController.cc - Memory DMA
src/sst/elements/memHierarchy/dmaEngine.cc - DRAM Controller
src/sst/elements/cramSim/c_Controller.cc - DRAM Device
src/sst/elements/cramSim/c_DeviceDriver.hpp
Network Modeling
- Network Router
src/sst/elements/merlin/hr_router/hr_router.cc - RDMA NIC
src/sst/elements/rdmaNic/rdmaNic.h - RDMA Receive
src/sst/elements/rdmaNic/rdmaNicRecvEngine.cc - RDMA Send
src/sst/elements/rdmaNic/rdmaNicSendEngine.cc
Simulation Extensions
- Application CPU
src/sst/elements/ariel/arielcpu.cc - Balar DMA
src/sst/elements/balar/dmaEngine.cc - Fault Manager
src/sst/elements/carcosa/components/faultInjManager.cc - Fault Models
src/sst/elements/carcosa/faultlogic
Other components
- Modeler
- Simulation Results
Connections 23
- Modeler → Ember Engine: configures
- Modeler → Memory Hierarchy: configures
- Ember Engine → Motif Generator: initializes
src/sst/elements/ember/emberengine.cc - Ember Engine → Motif Generator: generates events
src/sst/elements/ember/emberengine.cc - Workload Motifs → Motif Generator: implements
- Motif Generator → Simulation Results: drives simulation
- Coherence Controller → Memory Events: handles
- Directory Controller → Memory NIC: uses
src/sst/elements/memHierarchy/directoryController.cc - Memory Hierarchy → Memory Events: exchanges
src/sst/elements/memHierarchy/dmaEngine.h - Memory NIC → Memory Events: routes
src/sst/elements/memHierarchy/memNIC.h - Sieve Cache → Memory Events: filters
src/sst/elements/memHierarchy/Sieve/sieveController.cc - Memory DMA → Memory NIC: sends packets
- DRAM Controller → DRAM Device: sends commands
src/sst/elements/cramSim/c_Controller.cc - DRAM Device → DRAM Controller: returns responses
src/sst/elements/cramSim/c_Controller.cc - RDMA NIC → RDMA Receive: dispatches packets
src/sst/elements/rdmaNic/rdmaNicRecvEngine.cc - RDMA Receive → RDMA Send: queues read response
src/sst/elements/rdmaNic/rdmaNicRecvEngine.cc - RDMA Send → RDMA NIC: serves send engine
src/sst/elements/rdmaNic/rdmaNicSendEngine.cc - Network Router → RDMA NIC: connects network
- Application CPU → Memory Hierarchy: models memory access
- Balar DMA → Simulation Results: models transfers
- Fault Manager → Fault Models: manages
src/sst/elements/carcosa/components/faultInjManager.cc - Fault Manager → Simulation Results: supports fault studies
- Ember Engine → Simulation Results: produces simulation events