Building SimEng with SST¶
Prerequisites¶
In addition to CMake and a compiler that supports C++17, version 12.0.x of SST-Core and SST-Elements are required.
Warning
Please ensure that while installing SST-Elements, the initial configuration step should include the
--with-sst-core=<sst-core_install_directory>
flag so that all components present in SST-Elements are registered with the SST-Core.
This is important because SimEng relies on components present in SST-Elements.
However, if these components aren’t registered, SST-Core will fail to locate the components to use during simulation.
Note
If the path: <sst-core_install_directory>/bin
is added to the $PATH
environment variable then all sst executables will be
available globally. i.e. you will be to use the commands sst
, sst-info
, sst-register
and sst-config
without having to navigate
to the SST install directory.
Build Steps¶
Two flags have been added to SimEng’s CMake configuration step to enable integration with SST:
-DSIMENG_ENABLE_SST={ON, OFF} // Defaults to OFF
-DSST_INSTALL_DIR=<sst-core_install_directory> // Path to the SST-Core install location
The rest of the steps for building and installing SimEng with SST integration remain the same as a standalone SimEng installation i.e the build step and the install step.
Validation¶
A successful SST installation should also install the sst-info
executable. This executable is used to print all the components registered with SST-Core which
can be used in an SST simulation. To verify a successful installation of SimEng with SST integration enabled, the command sst-info --libs=libsstsimeng
should output:
================================================================================
ELEMENT 0 = sstsimeng()
Num Components = 1
Component 0: simengcore
CATEGORY: PROCESSOR COMPONENT
NUM STATISTICS = 0
NUM PORTS = 0
NUM SUBCOMPONENT SLOTS = 0
NUM PARAMETERS = 5
PARAMETER 0 = config_path (Path to Simeng YAML config file (string)) []
PARAMETER 1 = executable_path (Path to executable binary to be run by SimEng (string)) []
PARAMETER 2 = executable_args (argument to be passed to the executable binary (string)) []
PARAMETER 3 = clock (Clock rate of the SST clock (string)) []
PARAMETER 4 = max_addr_memory (Maximum address that memory can access (int)) [<required>]
simengcore: Simeng core wrapper for SST
Using ELI version 0.9.0
Compiled on: Aug 25 2022 11:55:05, using file: <path_to_simeng>/sst/include/SimengCoreWrapper.hh
Num SubComponents = 0
Num Modules = 0
Num SSTPartitioners = 0