820.cloverleaf_s
David Beckingsale
Michael Boulton
Tom Deakin <Tom dot Deakin at bristol dot ac dot uk>
Wayne Gaudin
Andy Herdman
Steven Jarvis
Andrew Mallinson
Matt Martineau
Simon McIntosh-Smith <S dot McIntosh-Smith at bristol dot ac dot uk>
Oliver Perks
820.cloverleaf_s was submitted to the SPEC CPU v8 Benchmark Search Program by Simon McIntosh-Smith.
Explicit Hydrodynamics
CloverLeaf solves the compressible Euler Equations using a second order explicit finite volume formulation on a structured grid. It uses a strategy of domain decomposition and local halo exchange to function in a distributed compute environment and through the implementation of OpenMP.
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 other 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
end_time=0.5
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.
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.
Expected output (clover_leaf.log) is provided for each of the problem sizes, and the benchmark validates successfully if each of the reported state variables in the output from the run are within 0.1% of the equivalent value in the expected output.
VTK files can also be outputted to allow visualization but this is not recommended for benchmarking runs due to the overhead incurred.
Fortran
OpenMP
The current version works on all tested OpenMP compiler implementations.
820.cloverleaf_s is distributed under the GNU General Public License v3.
The SPEC benchmark was checked out from the CloverLeaf Github repository. The CloverLeaf_OpenMP version was used as the base for 820.cloverleaf_s. The repository contains both C and Fortran versions of the kernels. The C kernels were removed from the source distributed via SPEC in order to make 820.cloverleaf_s a Fortran-only benchmark.
The SPEC CPU source code was based on commit hash 022eb9 from the CloverLeaf_OpenMP GitHub repository, and was downloaded from GitHub on May 16, 2022. The GPLv3 license was also downloaded from the CloverLeaf GitHub site.
Note that both GPL and LGPL licenses have been checked into the Github repository, but text in the source files indicates that the GPL license applies to the parts of the code that are being used for 820.cloverleaf_s.
SPEC has included versions of CloverLeaf in several benchmark suites. The table below summarizes the differences among them.
| Benchmark | Parallelism | Memory Usage | Configuration | |
|---|---|---|---|---|
| SPEC ACCEL® (retired) | ||||
| 353.clvrleaf.h | OpenACC | 1.5 GB | 1 accelerator | |
| 553.pclvrleaf | OpenMP Offload | 1.5 GB | 1 accelerator | |
| SPECaccel® 2023 | ||||
| 453.clvrleaf | OpenACC, OpenMP Offload | 14 GB | 1 accelerator | |
| SPEChpc® 2021 | ||||
| 519.clvleaf_t | MPI, OpenACC, OpenMP, OpenMP Offload | 44 GB | MPI+OpenMP, 1 node, 32 ranks | |
| 619.clvleaf_s | MPI, OpenACC, OpenMP, OpenMP Offload | 368 GB | MPI+OpenMP, 4 nodes, 128 ranks | |
| 719.clvleaf_m | MPI, OpenACC, OpenMP, OpenMP Offload | 2886 GB | MPI+OpenMP, 16 nodes, 512 ranks | |
| 819.clvleaf_l | MPI, OpenACC, OpenMP, OpenMP Offload | 5839 GB | MPI+OpenMP, 48 nodes, 1536 ranks | |
| SPEC CPU®2026 | ||||
| 820.cloverleaf_s | OpenMP | 22 GB | 1 node | |
The CloverLeaf GitHub repository includes submodules for a number of different programming models, including CUDA, MPI, OpenACC and OpenMP (with without target offload). Each of these implements the same core algorithms for different computing architectures and at different scales (e.g. the serial version runs on a single core, whereas the MPI version can run across many nodes on a cluster). This adaptability and flexibility has made CloverLeaf an attractive candidate for a series of different SPEC suites that benchmark different types of computing system (CPU, individual accelerators and HPC systems).
Copyright © 2026 Standard Performance Evaluation Corporation (SPEC®)