BE-SST is a parallel and scalable coarse-grained simulator that employs statistical models to run probabilistic, discrete-event simulation by combining Behavioral Emulation (BE), a coarse-grained modeling approach and Structural Simulation Toolkit (SST), a parallel discrete-event simulation framework from Sandia National Laboratories. BE-SST can be used for application design-space exploration (DSE) where alternate algorithms of an application can be studied on a given architecture; or architectural DSE can be performed for a given application. BE-SST provides a distributed parallel simulation library for Behavioral Emulation through simple interfaces and framework for development of coarse-grained BE models which can be easily extended to model new notional architectures. BE-SST also provides the capability to plug-n-play different subsystems (node, interconnect, memory, etc.), which is necessary to study abstract and notional machines.
Note: Both SST-core and SST-element-BE are provided to you through this repository. You DO NOT have to download the SST-core from the SST website.
Build and Run
This is a quick start guide for BE-SST. For more detailed and step-by-step instructions on how to build, install and run BE-SST, refer to DETAILED_BUILD_INSTALL.md.
Following dependencies are required to build and run BE-SST:
- gcc 4.7 and newer
- python 2 (anything in 2.7 branch)
2.1 numpy package
- GNU make 4.0 or newer
- autotools (libtool, autoconf, automake)
- OpenMPI 2.1.3 (strongly recommended)
- Boost 1.56
Note: OpenMPI 2.1.3 and Boost 1.56 installation steps are listed DETAILED_BUILD_INSTALL.md
Example Build and Install Directories
These instructions will use the following conventions (the user can adjust these as they see fit):
- Download directory
- This directory will contain downloaded source code packages for SST and its dependencies.
- The following directories should be created on the users machine
SST-elements-BEfrom the this GitHub repo inside the
- Installation directory
- This directory will be the installation directory for SST and its dependencies.
- The following directories should be created on the users machine:
Basic Build and Install
sst-elements-BEfrom this github repo.
- Change directory to the SST-Core directory.
- Run the
autogen.shscript to setup the configure for SST-core
- Configure SST-Core.
- Compile SST-Core.
- Install SST-Core.
- Change directory to
- Run the
autogen.shscript to setup the configure for BE element.
- Configure BE element.
./configure --prefix=$HOME/local/sst-elements-BE --with-sst-core=$SST_CORE_HOME --with-boost=$BOOST_HOME
- Compile BE element.
- Install BE element.
- Verify SST Operation with a very simple sanity test (Note: Path to sst executable must be properly setup.)
- Navigate to the tests folder
- Running the test script for BE to check its functional correctness
- Running a test configuration to obtain a simulated time
./BE_RUN.sh -c testConfig.py
Refer to the following papers for more information on BE  and BE-SST :
 Kumar N., Pascoe C., Hajas C., Lam H., Stitt G., George A. (2016) Behavioral Emulation for Scalable Design-Space Exploration of Algorithms and Architectures. In: Taufer M., Mohr B., Kunkel J. (eds) High Performance Computing. ISC High Performance 2016. Lecture Notes in Computer Science, vol 9945. Springer, Cham. https://link.springer.com/chapter/10.1007/978-3-319-46079-6_1
 Ajay Ramaswamy, Nalini Kumar, Aravind Neelakantan, Herman Lam, and Greg Stitt. 2018. Scalable Behavioral Emulation of Extreme-Scale Systems Using Structural Simulation Toolkit. In Proceedings of the 47th International Conference on Parallel Processing (ICPP 2018). Association for Computing Machinery, New York, NY, USA, Article 17, 1–11. DOI:https://doi.org/10.1145/3225058.3225124
If you consider using this work, please cite the above papers.
For any questions regarding the simulator, contact Aravind Neelakantan at firstname.lastname@example.org