Coder Social home page Coder Social logo

vishnuv0209 / be-sst Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shrec-doe-uf/be-sst

0.0 0.0 0.0 3.12 MB

Coarse-grained system-level simulator developed at PSAAP II Center for Compressible Multiphase Turbulence at University of Florida

Shell 1.45% C++ 55.16% Python 39.29% C 0.41% CSS 0.35% Makefile 0.39% M4 2.94%

be-sst's Introduction

BE-SST

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:

  1. gcc 4.7 and newer
  2. python 2 (anything in 2.7 branch)
    2.1 numpy package
    2.2 python-dev
  3. GNU make 4.0 or newer
  4. autotools (libtool, autoconf, automake)
  5. OpenMPI 2.1.3 (strongly recommended)
  6. 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 $HOME/scratch
    • This directory will contain downloaded source code packages for SST and its dependencies.
    • The following directories should be created on the users machine
      • $HOME/scratch
      • $HOME/scratch/src
  • Download sst-core-devel and SST-elements-BE from the this GitHub repo inside the $HOME/scratch/src directory
  • Installation directory $HOME/local
    • This directory will be the installation directory for SST and its dependencies.
    • The following directories should be created on the users machine:
      • $HOME/local
      • $HOME/local/packages

Basic Build and Install

  1. Obtain sst-core-devel and sst-elements-BE from this github repo.
  2. Place sst-core-devel and sst-elements-BE in $HOME/scratch/src directory.
  3. Change directory to the SST-Core directory.
cd $HOME/scratch/src/sst-core-devel  
  1. Run the autogen.sh script to setup the configure for SST-core
./autogen.sh  
  1. Configure SST-Core.
./configure --prefix=$HOME/local/sst-core-devel  
  1. Compile SST-Core.
make all  
  1. Install SST-Core.
make install  
  1. Change directory to sst-elements-BE directory
cd $HOME/scratch/src/sst-elements-BE  
  1. Run the autogen.sh script to setup the configure for BE element.
./autogen.sh  
  1. Configure BE element.
./configure --prefix=$HOME/local/sst-elements-BE --with-sst-core=$SST_CORE_HOME --with-boost=$BOOST_HOME  
  1. Compile BE element.
make all  
  1. Install BE element.
make install  
  1. Verify SST Operation with a very simple sanity test (Note: Path to sst executable must be properly setup.)
sst --version  
  1. Navigate to the tests folder
cd src/sst/elements/behavioralEmulation/tests/  
  1. Running the test script for BE to check its functional correctness
./BE_TEST.sh  
  1. 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 [1] and BE-SST [2]:

[1] 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
[2] 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 [email protected]

be-sst's People

Contributors

aravindneela avatar ashwinihegde0 avatar ipshta avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.