Catalog

AMG | C

AMG is a parallel algebraic multigrid solver for linear systems arising from problems on unstructured grids.

ASPA | C++

ASPA Proxy Application,Multi-scale, adaptive sampling, materials science proxy.

CabanaPIC | C++, MPI

A mini-PIC (particle-in-cell) code based on the Cabana library, which is developed in the ECP COPA project. The algorithm employed in the code is standard explicit PIC in Cartesian geometry solving relativistic Vlasov-Maxwell equations.

Cburgers | C++/Python

The purpose of this mini-application is to demonstrate how one may deploy scientific machine learning within a computational physics workflow. We claim that this code represents a *practical* deployment because it satisfies the following features: 1. The computation is performed using a compiled language as is the case with most legacy codes (C++). 2. We avoid disk-IO through in-situ transfer of data from the numerical computation to the machine learning computation (in Python). In addition, this code also highlights the advantages of integrating the Python ecosystem with C++. We now have the following capabilities: 1. Utilizing arbitrary data science libraries such as TensorFlow through their Python APIs. 2. Easy in-situ visualization in matplotlib from a C++ computation. 3. A potential interface (if there are no issues with security) to streaming data from the internet (from say, a Python API). 4. Easy ability to save data using formats like HDF5 or NetCDF4. The test-case demonstrated here is representative of several Sci-ML workloads. We aim to build a surrogate model using TensorFlow in Python from data generated by a C++ computation. The methodology we utilize is something called the "POD-LSTM" - here snapshots of the solution field are linearly compressed using an SVD and the compressed representations are used as training data within a long short-term memory (LSTM) neural network. The LSTM is used to forecast compressed representations of the solution field in the future (for more details please visit our Editor's pick article [here](https://doi.org/10.1063/5.0019884)). However, this educational proxy-app may easily be modified to solve more complex problems (for example: closure modeling, data assimilation, and control) which assess the interplay of compute and ML.

Chatterbug | C++, MPI

A suite of communication-intensive proxy applications that mimic commonly found communication patterns in HPC codes. These codes can be used as synthetic codes for benchmarking, or for trace generation using OTF2.

CLAMR | C++

CLAMR is a cell-based adaptive mesh refinement mini-app developed as a testbed for hybrid algorithm development using MPI and OpenCL.

CloverLeaf | Fortran

A miniapp that solves the compressible Euler equations on a Cartesian grid.

CloverLeaf3D | Fortran

3D version of a miniapp that solves compressible Euler equations on a Cartesian grid

CoGL | C++

Analyzes pattern formation in ferroelastic materials and tests in situ visualization.

CoHMM | C

A proxy application for the Heterogeneous Multiscale Method (HMM) augmented with adaptive sampling.

Comb | C++, MPI, CUDA, OpenMP

Comb is a communication performance benchmarking tool.

CoMD | C

A classical molecular dynamics proxy application implemented in multiple programing models.

CoSP2 | C

CoSP2 implements typical linear algebra algorithms and workloads for a quantum molecular dynamics (QMD) electronic structure code

EBMS | C

A miniapp for the Energy Banding Monte Carlo (EBMC) neutron transportation simulation code.

Ember | C and MPI/SHMEM

Ember code components represent highly simplified communication patterns that are relevant to DOE application workloads.

ExaMiniMD | C++

A proxy application and research vehicle for particle codes, in particular Molecular Dynamics

FleCSALE | C++

ALE hydrodynamics solver suite using FleCSI.

GAMESS_RI-MP2_MiniApp | Fortran (90)

This mini-app computes the resolution-of-the-identity Moeller-Plesset second-order perturbation theory (RI-MP2) energy - a quantum chemistry method for estimating the electron correlation error.

GAMESS-HF-Proxy | C++, OpenMP

The GAMESS-HF proxy application implements the Hartree-Fock (HF) electronic structure method. The HF method is an integral part of any electronic structure code, and it is also used as a starting point for more advanced electronic correlation methods.

HPCCG | C++

A simple conjugate gradient benchmark code for a 3D chimney domain.

HPGMG | C

HPGMG implements full multigrid (FMG) algorithms using finite-volume and finite-element methods.

Kripke | C++

https://codesign.llnl.gov/kripke.php

Laghos | C++

Laghos solves the Euler equation of compressible gas dynamics in a Lagrangian frame using unstructured high-order finite elements.

LCALS | C++

LCALS (“Livermore Compiler Analysis Loop Suite”) is a collection of loop kernels based, in part, on historical “Livermore Loops” benchmarks

MACSio | C, MPI

A Multi-purpose, Application-Centric, Scalable I/O Proxy Application

MCB | C++

The Monte Carlo Benchmark (MCB) is a proxy for the computational performance of Monte Carlo algorithms on parallel architectures.

MerBench | C, UPC

A compact set of PGAS benchmarks that capture the communication patterns of the parallel algorithms throughout HipMer, a parallel genome assembler pipeline.

miniAero | C

An explicit unstructured finite volume code that solves the compressible Navier-Stokes equations

miniAMR | C

3D stencil calculation with Adaptive Mesh Refinement

miniFE | C++, CUDA, MPI, OpenMP

A miniapp for unstructured implicit finite element codes.

miniGAN | Python, MPI

The objective of the miniGAN miniapp is to model performance for training generator and discriminator networks. The GAN's generator and discriminator generate plausible 2D/3D maps and identify fake maps, respectively. Related applications exist in cosmology (CosmoFlow, ExaGAN) and wind energy (ExaWind).

miniGhost | Fortran

A Finite Difference app which implements a difference stencil across a homogenous three dimensional domain.

miniGMG | C

miniGMG is a proxy for geometric multigrid solvers found in applications built from AMR MG frameworks like CHOMBO or BoxLib.

miniMD | C++

A simple proxy for the force computations in typical molecular dynamics applications.

miniQMC | C++, OpenMP

This miniapp contains a simplified but computationally accurate implementation of the real space quantum Monte Carlo algorithms implemented in the full production QMCPACK application.

miniSMAC2D | Fortran

Solves the finite-differenced 2D incompressible Navier-Stokes equations with Spalart-Allmaras one-equation turbulence model on a structured body conforming grid

miniTri | C++

Proxy for a class of triangle based data analytics

miniVite | C++, MPI, OpenMP

miniVite is a proxy application that implements a single phase of Louvain method in distributed memory for graph community detection.

miniXyce | C++

A portable proxy of some of the key capabilities in the electrical modeling Xyce.

minq | C++ MPI CUDA

Minq is a proxy app that replicates the linear algebra components of a plane-wave or real-space density functional theory code. It is based on the inq code (https://gitlab.com/npneq/inq). The parallel linear algebra operations are done using the Slate parallel linear algebra library (https://icl.utk.edu/slate/).

mlperf-cosmoflow | Python, TensorFlow

The CosmoFlow training application benchmark from the MLPerf HPC v0.5 benchmark suite. It involves training a 3D convolutional neural network on N-body cosmology simulation data to predict physical parameters of the universe.

mlperf-deepcam | python, PyTorch

The DeepCAM training application benchmark from the MLPerf HPC v0.5 benchmark suite, based on the Exascale Deep Learning for Climate Analytics paper which shared the 2018 Gordon Bell prize. The application trains a deep learning segmentation model for identifying extreme weather phenomena in climate simulation data.

NEKbone | Fortran

Nekbone captures the basic structure and user interface of the extensive Nek5000 software.

NuT | C++

NuT is Monte Carlo code for neutrino transport and is a C++ analog to the Haskell McPhD code.

Pathfinder | C++

A signature search miniapp.

PENNANT | C++

An unstructured mesh physics mini-app designed for advanced architecture research.

PICSARlite | Fortran, MPI

PICSARlite is a subset of the PICSAR suite that allows testing of smaller electromagnetic Particle-In-Cell kernels.

PlasmaApp | C++

PlasmaApp is a flexible implicit charge and energy conserving implicit PIC framework.

ProfugusMC | C++, MPI, CUDA

ProfugusMC is a multigroup Monte Carlo neutron transport mini-app based on ORNL's production Shift code.

Quicksilver | C++

Quicksilver is a open source proxy app that represents the key elements of the Mercury workload by solving a simplified dynamic monte carlo particle transport problem. OpenMP and MPI are used for parallelization. A GPU version is available.

RAJA Performance Suite | C++

The RAJA performance suite is designed to explore performance of loop-based computational kernels of the sort found in HPC applications. In particular, it is used to assess, monitor, and compare runtime performance of kernels implemented using RAJA and variants implemented using standard or vendor-supported parallel programming models directly.

Remhos | C++

Remhos (REMap High-Order Solver) is a CEED miniapp that performs monotonic and conservative high-order discontinuous field interpolation (remap) using DG advection-based spatial discretization and explicit high-order time-stepping.

RSBench | C

A mini-app to represent the multipole resonance representation lookup cross section algorithm.

SimpleMOC | C

A Method of Characteristics (MOC) miniapp for 3D neutron transport calculations in the context of full scale light water reactor simulation.

SNAP | Fortran

SNAP serves as a proxy application to model the performance of a modern discrete ordinates neutral particle transport application.

SNbone | C, Fortran

This application targets the primary computational solve burden of a SN, continuous finite element based transport equation solver

SW4lite | C, Fortran

Sw4lite is a bare bone version of SW4 intended for testing performance optimizations in a few important numerical kernels of SW4.

SWFFT | C

Hardware Accelerated Cosmology Code (HACC) Distributed memory discrete fast Fourier transform

TeaLeaf | Fortran

A miniapp that solves the linear heat conduction equation on a spatially decomposed regularly grid using a 5 point stencil with implicit solvers.

Thornado-mini | Fortran

A mini-app for finite element, moment-based radiation transport. The method — ultimately targeted at simulation of neutrino transport in core-collapse supernovae — includes the use of curvilinear coordinates and tabulated microphysics.

Tycho2 | C++

A neutral particle transport mini-app to study performance of sweeps on unstructured, 3D tetrahedral meshes.

VPFFT++ | C++

VPFFT++ is a proxy for the algorithms in a mesoscale micromechanical materials code, VPFFT.

XSBench | C

XSBench is a mini-app representing a key computational kernel of the Monte Carlo neutronics application OpenMC.