Skip to content

A set of communication transports running in SST rather than real systems

Notifications You must be signed in to change notification settings

jjwilke/sst-transports

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SST

Structural Simulation Toolkit (SST) Macroscale Element Library

Copyright (c) 2009-2020, Sandia National Laboratories

Sandia National Laboratories is a multimission laboratory managed and operated by National Technology and Engineering Solutions of Sandia, LLC., a wholly owned subsidiary of Honeywell International, Inc., for the U.S. Department of Energy's National Nuclear Security Administration under contract DE-NA0003525.


The Structural Simulation Toolkit (SST) macroscale element library provides functionality for simulating extreme-scale applications. Extreme scale is achieved through:

  • Skeletonized endpoint models that provide accurate, but fast models of applications.
  • Coarse-grained networks models that capture important traffic contention without modeling flit-level details
  • Parallelization through a PDES (parallel discrete event simulation) core

The most unique functionality is dedicated to skeleton applications which run as emulated processes on a barebones virtual OS. Each process (and thread) is modeled as a user-space thread, allowing millions of virtual simulation processes to be modeled in a single simulation.

The SST transports library in this repository provides bindings for the common network APIs like Infiniband verbs, Cray uGNI, libfabric. Once installed, middleware libraries like MPI can be built for simulation simply be linking against the SST versions of these libraries rather than the native versions that would run over actual hardware For more information on SST/macro, see the SST/macro repo. For details on the process of skeletonization and running simulated versions of network libraries, consult the the following papers:

Building SST Transports

SST Transports requires an existing install of SST/macro. For SST/macro build instructions, see the SST/macro repo. Once SST/macro installed, SST Transports is built simply by running:

> cmake ${SST_TRANSPORTS_SOURCE_DIR} \
  -DSSTMacro_ROOT=${SSTMACRO_INSTALL_ROOT} \
  -DCMAKE_CXX_COMPILER=${CPP_COMPILER} \
  -DCMAKE_C_COMPILER=${C_COMPILER} \
  -DCMAKE_INSTALL_PREFIX=${SST_TRANSPORTS_INSTALL_PATH}
> make install

Spack build

SST Transports has a Spack package which should automatically configure and install dependencies. After downloading Spack, you can run spack info sst-transports to see options or run spack install sst-transports to build the library.

Using SST Transports

After installing, libraries like MPI can be built against simulator APIs. For example, if building a library that uses verbs, you might configure your project with:

> configure \
    --with-ib-verbs=${SST_TRANSPORTS_INSTALL_PATH}

To learn more, see the PDF manuals in the top-level source directory. Visit sst-simulator.org to learn more about SST core.

License

Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software.

About

A set of communication transports running in SST rather than real systems

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages