SPEChpc™ 2021 Benchmark Description

Benchmark Name


Benchmark Author

Submitted by Simon McIntosh-Smith, simonm __at__ cs.bris.ac.uk

Simon McIntosh-Smith <simonm [at] cs.bris.ac.uk >
University of Bristol
Bristol, BS8 1TH, UK

Authors listed in alphabetic order:

Benchmark Program General Category

Physics / High Energy Physics

Benchmark Description

CloverLeaf is a mini-app that solves the compressible Euler equations on a Cartesian grid, using an explicit, second-order accurate method. Each cell stores three values: energy, density, and pressure. A velocity vector is stored at each cell corner. This arrangement of data, with some quantities at cell centers, and others at cell corners is known as a staggered grid. CloverLeaf currently solves the equations in two dimensions.

The computation in CloverLeaf has been broken down into "kernels" - low level building blocks with minimal complexity. Each kernel loops over the entire grid and updates one (or some) mesh variables, based on a kernel-dependent computational stencil. Control logic within each kernel is kept to a minimum , allowing maximum optimisation by the compiler. Memory is sacrificed in order to increase peformance, and any updates to variables that would introduce dependencies between loop iterations are written into copies of the mesh.

Input Description

All the input that is required to generate a CloverLeaf run is contained within the clover.in input file.

The logical mesh size is defined by the x_cells and y_cells input parameters.

The physical mesh size is defined by the xmin, xmax, ymin and ymax parameters.

The different ideal gas states are defined using the state keyword. State 1 is always the background material that will infill where either states are not defined.

e.g. state 1 density=0.2 energy=1.0
     state 2 density=1.0 energy=2.5 geometry=rectangle xmin=0.0 ymin=0.0 xmax=5.0 ymax=2.0

The control parameters are used to set timestep frequency and end times.

e.g. initial_timestep=0.04

There are a number of other inputs that can be used for fine control, profiling and visualization. The full description of these can be found in the links detailed below.

Output Description

The most important output from CloverLeaf is the field summary print that details the average state variables of the system, which includes pressure, kinetic energy and internal energy.

Timestep information is also output every step.

VTK files can also be outputted to allow visualization but this is not recommended for benchmarking runs due to the overhead incurred.

Programming Language


Known portability issues


Version and Licensing

Application Version: 1.3

License: GPL 3