Skip to content

sstsimulator/sst-apps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SST-Apps

This repository contains Spack packages that build benchmarks that are compatibile with SST Elements. The benchmarks are patched to add this support. Currently, the only supported element is Ariel., but we hope to suport other elements in the future, such as Vanadis and Mercury.

Benchmarks

Available benchmarks are in spack_repo/sst_apps/packages/. The following benchmarks are available:

  1. AMG2023
  2. Branson
  3. LULESH
  4. LAMMPS
  5. BabelStream
  6. HPCG
  7. miniAMR

Installing this repo

  1. Install Spack
  2. Set up the spack environment source ~/spack/share/spack/setup-env.sh
  3. Clone this repo git clone [email protected]:sstsimulator/sst-spack.git
  4. Add this repo: spack repo add sst_apps/spack_repo/sst_apps

Installing Benchmarks

After adding the repo it will be at the start of Spack's search path. You can now install any of the supported benchmarks using spack install. To see a list of included benchmarks, use the spack list command

$ spack list -r sst-spack
amg2023  ariel-apps  babelstream  branson  hpcg  lammps
==> 6 packages
$ spack install amg2023

For your convience, you can install all of the benchmarks with the bundle package named ariel-apps.

spack install ariel-apps

If you want to ensure you are getting the sst_apps version of a benchmark and not the builtin version, you can either prefix the package name with the repo name, e.g. spack install sst_apps.amg2023.

Variants

Ariel API integration is controlled by the +ariel vaiant, which is the default for all packages in this repo.

Running Benchmarks

To get access to the binaries and any associated input files and required libraries, you need to use spack load. You can either load individual benchmarks, or use the bundle package to load them all onto your PATH.

$ spack load ariel-apps
$ which amg
~/spack/opt/spack/linux-rocky8-skylake_avx512/gcc-12.2.0/amg2023-develop-zslus327ekd7hrr57jls4sirsklyauiz/bin/amg

Use spack unload to undo this.

Sanity check

These benchmarks can run natively. You can run them and you should see output from libarielapi.

$ amg
notifying fesimple
Running with these driver parameters:
  Problem ID    = 1

[... output omitted ...]

FOM_Setup: nnz_AP / Setup Phase Time: 1.669530e+07

ARIEL: Request to print statistics.
ARIEL: ENABLE called in Ariel API.
ARIEL: Request to print statistics.
ARIEL: DISABLE called in Ariel API.
=============================================
Problem 1: AMG-GMRES Solve Time:
=============================================
GMRES Solve:
  wall clock time = 0.002090 seconds

[... output omitted ...]

Figure of Merit (FOM): nnz_AP / (Setup Phase Time + Solve Phase Time) 1.010854e+07

The lines beginning with ARIEL as well as notifying fesimple come from the Ariel library.

Running SST

Now we are ready to run an Ariel simulation in SST! You will notice that sst-core and sst-elements were installed as dependencies of our benchmarks. This is because they need libarielapi, built as part of sst-elements, to get the best experience when running them in Ariel.

Since you already have them installed, you can use spack to load them. Then you'll just need an SST input file. This repo happens to include one which is used for testing.

$ spack load sst-elements
$ spack load amg2023
$ sst sst-spack/shared_files/test-ariel.py -- $(which amg)

Integration Testing

This repo uses Spack's builtin testing framework to ensure that the benchmarks continue to work with new versions of SST. Run the tests with:

spack test run <package>

TODOs

  • PEBIL frontend support
  • Fix issues with creating patches for Branson and BabelStream
  • Upstream changes from plavin/sst-elements:ariel_mpi_comm_spawn to sstsimulator/sst-elements

About

Applications and benchmarks that have been modified for simulation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages