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.

Basic Hartree-Fock Proxy Application | Fortran-90

This proxy application simulates the compute load and data-movement of the kernel of the Hartree-Fock method in quantum chemistry. The proxy features a simplified algorithm for computing electron repulsion integrals that is easily offloaded to GPUs, together with integral screening to avoid small terms.

CabanaMD | C++; MPI; Kokkos

A molecular dynamics proxy app built with Kokkos and Cabana.

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]( 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 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.


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

E3SM-kernels | Fortran

Climate kernels for Co-design These kernels originate from the Energy Exascale Earth System Model (E3SM). They are intended for sharing with interested parties for co-design purposes.


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.

ExaCMech Miniapp | C++ / RAJA

This miniapp represents how ExaCMech, a constitutive modelling library, might be used in real application codes such as ExaConstit.

ExaMiniMD | C++

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

ExaMPM | C++; MPI; Kokkos

Material point method proxy app built with Cabana and Kokkos for fluid and solid mechanics.

exawind-virtuals-app | C++, CMake

This application contains a minimal example of device virtual functions used in Exawind/Nalu-Wind codebase. This tests virtual function capability on device. The core physics kernels are implemented as sub-classes of Kernel and Algorithm is the driver that holds a vector of user-registered computational kernels as pointers to the base class. These instances are created on device using placement new and run on device.

FleCSALE | C++

ALE hydrodynamics solver suite using FleCSI.

FlexFlow – CandleUno | Cuda, C++, C, Python

FlexFlow implementation of Candle Uno benchmarks

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.

Goulash | C/C++/Fortran/Python

Goulash is an interoperability proxy and test suite for heterogeneous programming models and compilers.


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


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

HyPar | c

Finite-difference Algorithm for solving Time-Dependent Hyperbolic-Parabolic Partial Differential Equations (with source term)

hypre-mini-app | C++, CMake

A mini-app to use HYPRE solvers and preconditioners on linear systems generated by the Nalu-Wind low-Mach code. This app reads the linear system matrix, RHS, and reference solution data in MatrixMarket and HYPRE IJ formats.

IAMR | c++

A parallel, adaptive mesh refinement (AMR) code that solves the variable-density incompressible Navier-Stokes equations.

imexlb | C++

Performance-portable, lattice Boltzmann solvers on heterogeneous platforms

Kripke | C++

Laghos | C++

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


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


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

miniERIs | Fortran90, OpenMP

This mini-app computes the electron-repulsion-integral (ERIs) using the rotated axis algorithm for s,p, and d basis functions and then builds the Fock matrix by contracting the density matrix with the ERIs. Both the ERI evaluation kernels and Fock building kernel are offloaded.

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.

miniMDock | C, C++, Cuda, HIP, Kokkos

A GPU-accelerated performance portable particle-grid based protein ligand molecular docking tool that can be used for virtual drug discovery compound screens based on a molecular recognition model, that analysis a three-dimensional model of an interaction between a protein and a small molecule (ligand).

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.

miniRL | Python, C/C++

miniRL is a reinforcement learning (RL) proxy application derived from the Easily eXtendable Architecture for Reinforcement Learning (EXARL) framework, which is being developed by the ExaLearn Control project. The EXARL framework is designed to be used by researchers interested in using RL for control and optimization of their applications or experiments without worrying about the details of the RL implementations. Any RL problem consists of an agent (controller) and an environment (system to be controlled), and EXARL uses an extension of the OpenAI Gym framework, which not only allows existing benchmark environments in Gym to be used but also provides easy integration of new scientific environments. The agent is nothing but a collection of RL algorithms with a state table or associated neural network architectures. EXARL also includes distributed learning workflows, which define how the agent and environment interact with each other.

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 ( The parallel linear algebra operations are done using the Slate parallel linear algebra library (

minTally | C, OpenMP

A mini-app that abstracts the key components of the tallying system from a full Monte Carlo neutron transport application

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.

mlperf-dimenet++ | python

Reference implementation for the MLPerf HPC OpenCatalyst DimeNet++ benchmark

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.


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

PGAS-FMO Proxy Application | fortran-90+ / MPI

This proxy application simulates the compute load and data-movement of the kernel of the Fragment Molecular Orbital (FMO) method in quantum chemistry. The proxy implements a parallel global address space (PGAS) in order to support FMO.

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.

RIOPA | julia

Proxy app for input/output pattern generation in the Exascale Computing Project using Julia

RSBench | C

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

SHAW | C++ using Kokkos-core and Kokkos-kernels (for main code), Python (for helper meshing script and visualization)

This code simulates the generation and propagation of elastic seismic shear waves in an axisymmetric domain. The implementation is in C++ and leverages the Kokkos ecosystem to enable performance portability. The name "SHAW" is an acronym built from "SHeAr Waves".

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.


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.