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.
Available benchmarks are in spack_repo/sst_apps/packages/. The following benchmarks are available:
- AMG2023
- Branson
- LULESH
- LAMMPS
- BabelStream
- HPCG
- miniAMR
- Install Spack
- Set up the spack environment
source ~/spack/share/spack/setup-env.sh - Clone this repo
git clone [email protected]:sstsimulator/sst-spack.git - Add this repo:
spack repo add sst_apps/spack_repo/sst_apps
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 amg2023For your convience, you can install all of the benchmarks with the bundle package named ariel-apps.
spack install ariel-appsIf 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.
Ariel API integration is controlled by the +ariel vaiant, which is the default
for all packages in this repo.
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.
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.
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)
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>
- PEBIL frontend support
- Fix issues with creating patches for Branson and BabelStream
- Upstream changes from
plavin/sst-elements:ariel_mpi_comm_spawntosstsimulator/sst-elements