Skip to content
README.md 18.2 KiB
Newer Older
# Unified European Applications Benchmark Suite
Walter Lioen's avatar
Walter Lioen committed
The Unified European Application Benchmark Suite (UEABS) is a set of currently 13 application codes taken from the pre-existing PRACE and DEISA application benchmark suites, and extended with the PRACE Accelerator Benchmark Suite. The objective is providing a single benchmark suite of scalable, currently relevant and publicly available application codes and datasets, of a size which can realistically be run on large systems, and maintained into the future.
The UEABS activity was started during the PRACE-PP project and was publicly released by the PRACE-2IP project.
The PRACE "Accelerator Benchmark Suite" was a PRACE-4IP activity.
The UEABS has been and will be actively updated and maintained by the subsequent PRACE-IP projects.
Each application code has either one, or two input datasets. If there are two datasets, Test Case A is designed to run on Tier-1 sized systems (up to around 1,000 x86 cores, or equivalent) and Test Case B is designed to run on Tier-0 sized systems (up to around 10,000 x86 cores, or equivalent). If there is only one dataset (Test Case A), it is suitable for both sizes of system.
Victor's avatar
Victor committed

Walter Lioen's avatar
Walter Lioen committed
Contacts: (Ok to mention all BCOs here?, ask PMO for a UEABS contact mailing list address?), Walter Lioen <mailto:walter.lioen@surf.nl>
Victor's avatar
Victor committed

Current Release
---------------
Victor's avatar
Victor committed

Walter Lioen's avatar
Walter Lioen committed
The current release is Version 2.2 (December 31, 2021).
Walter Lioen's avatar
Walter Lioen committed
See also the [release notes and history](RELEASES.md).
Victor's avatar
Victor committed

Running the suite
-----------------

Instructions to run each test cases of each codes can be found in the subdirectories of this repository.
Victor's avatar
Victor committed

Walter Lioen's avatar
Walter Lioen committed
For more details of the codes and datasets, and sample results, please see the PRACE-6IP benchmarking deliverable D7.5 "Evaluation of Benchmark Performance" (November 30, 2021) at http://www.prace-ri.eu/public-deliverables/ .
The application codes that constitute the UEABS are:
---------------------------------------------------
Walter Lioen's avatar
Walter Lioen committed
<table>
  <thead>
    <tr>
      <th rowspan="2">Application</th>
      <th rowspan="2">Lines of<br/>Code</th>
      <th colspan="3">Parallelism</th>
      <th colspan="4">Language</th>
      <th rowspan="2">Code Description/Notes</th>
    </tr>
    <tr>
      <th>MPI</th>
      <th>OpenMP/<br/>Pthreads</th>
      <th>GPU</th>
      <th>Fortran</th>
      <th>Python</th>
      <th>C</th>
      <th>C++</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Alya
        <ul>
          <li><a href="https://www.bsc.es/computer-applications/alya-system">website</a></li>
          <li><a href="https://gitlab.com/bsc-alya/open-alya">source</a></li>
          <li><a href="alya/README.md">instructions</a></li>
          <li><a href="https://gitlab.com/bsc-alya/benchmarks/sphere-16M">Test Case A</a></li>
          <li><a href="https://gitlab.com/bsc-alya/benchmarks/sphere-132M">Test Case B</a></li>
        </ul>
      </td>
      <td>600,000</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td></td>
      <td></td>
      <td></td>
      <td>The Alya System is a Computational Mechanics code capable of solving different physics, each one with its own modelization characteristics, in a coupled way. Among the problems it solves are: convection-diffusion reactions, incompressible flows, compressible flows, turbulence, bi-phasic flows and free surface, excitable media, acoustics, thermal flow, quantum mechanics (DFT) and solid mechanics (large strain).</td>
    </tr>
    <tr>
Charles Moulinec's avatar
Charles Moulinec committed
      <td>Code_Saturne
        <ul>
         <li><a href="https://www.code-saturne.org/cms/web">Code_Saturne website</a></li>
         <li><a href="https://www.code-saturne.org/cms/sites/default/files/releases/code_saturne-7.0.0.tar.gz">Source code</a></li>
         <li><a href="https://repository.prace-ri.eu/git/UEABS/ueabs/-/blob/r2.2-dev/code_saturne/README.md">Build instuctions</a></li>
         <li><a href="https://repository.prace-ri.eu/ueabs/Code_Saturne/2.2/CS_7.0.0_PRACE_UEABS_CAVITY_13M.tar.gz">Testcase A</a></li>
         <li><a href="https://repository.prace-ri.eu/ueabs/Code_Saturne/2.2/CS_7.0.0_PRACE_UEABS_CAVITY_XXXM.tar.gz">Testcase B</a></li>
        </ul>
      </td>
Walter Lioen's avatar
Walter Lioen committed
      <td>~350,000</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
Charles Moulinec's avatar
Charles Moulinec committed
      <td>The code solves the Navier-Stokes equations for incompressible/compressible flows using a predictor-corrector technique. The Poisson pressure equation is solved by a Conjugate Gradient preconditioned by a multi-grid algorithm, and the transport equations by Conjugate Gradient-like methods. Advanced gradient reconstruction is also available to account for distorted meshes.</td>
Walter Lioen's avatar
Walter Lioen committed
    </tr>
    <tr>
Holly Judge's avatar
Holly Judge committed
      <td>CP2K
        <ul>
          <li><a href="https://www.cp2k.org/">CP2K website</a></li>
          <li><a href="https://github.com/cp2k/cp2k/releases">Source code</a></li>
Holly Judge's avatar
Holly Judge committed
          <li><a href="./cp2k/README.md">Build instructions</a></li>
Holly Judge's avatar
Holly Judge committed
          <li><a href="./cp2k/benchmarks/TestCaseA_H2O-512">Testcase A</a></li>
          <li><a href="./cp2k/benchmarks/TestCaseB_LiH-HFX">Testcase B</a></li>
          <li><a href="./cp2k/benchmarks/TestCaseC_H2O-DFT-LS">Testcase C</a></li>
        </ul>
      </td>
Walter Lioen's avatar
Walter Lioen committed
      <td>~1,150,000</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td></td>
      <td></td>
      <td></td>
      <td>CP2K is a freely available quantum chemistry and solid-state physics software package for performing atomistic simulations. It can be run with MPI, OpenMP and CUDA. All of CP2K is MPI parallelised, with some routines making use of OpenMP, which can be used to reduce the memory footprint. In addition some linear algebra operations may be offloaded to GPUs using CUDA.</td>
    </tr>
    <tr>
      <td>GADGET</td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
      <td></td>
    </tr>
    <tr>
      <td>GPAW
        <ul>
          <li><a href="https://wiki.fysik.dtu.dk/gpaw/">website</a></li>
          <li><a href="https://gitlab.com/gpaw/gpaw">GPAW GitLab</a></li>
          <li><a href="https://gitlab.com/mlouhivu/gpaw/tree/cuda">GPAW GPU development (cuda branch)</a></li>
          <li><a href="gpaw/README.md#mechanics-of-building-the-benchmark">Build instructions</a>
          <li><a href="gpaw/README.md#mechanics-of-running-the-benchmark">Run instructions</a>
          <li><a href="gpaw/benchmark/A_carbon-nanotube/input.py">Test Case A</a>
          <li><a href="gpaw/benchmark/B_copper-filament/input.py">Test Case B</a>
          <li><a href="gpaw/benchmark/C_silicon-cluster/input.py">Test Case C</a>
Walter Lioen's avatar
Walter Lioen committed
      <td>132,000</td>
      <td>X</td>
      <td></td>
Walter Lioen's avatar
Walter Lioen committed
      <td></td>
      <td>X</td>
      <td>X</td>
      <td></td>
      <td>
        GPAW is a density-functional theory (DFT)
        program for ab initio electronic structure calculations using the projector
        augmented wave method. It uses a uniform real-space grid representation of the
        electronic wavefunctions that allows for excellent computational scalability
        and systematic converge properties.
        The GPAW benchmark tests MPI parallelization and the quality of the provided mathematical
        libraries, including BLAS, LAPACK, ScaLAPACK, and FFTW-compatible library. There is
        also an experimental CUDA-based implementation for GPU systems, but it is not covered
        by this UEABS release.
      </td>
Walter Lioen's avatar
Walter Lioen committed
    </tr>
    <tr>
      <li><a href="http://www.gromacs.org">website</a></li>
      <li><a href="http://www.gromacs.org/Downloads">Source code</a></li>
      <li><a href="https://repository.prace-ri.eu/git/UEABS/ueabs/-/tree/r2.2-dev/gromacs">Build and Run Instructions</a></li>
      <li><a href="https://repository.prace-ri.eu/ueabs/GROMACS/2.2/GROMACS_TestCaseA.tar.xz">Test Case A</a></li>
      <li><a href="https://repository.prace-ri.eu/ueabs/GROMACS/2.2/GROMACS_TestCaseB.tar.xz">Test Case B</a></li>
      <li><a href="https://repository.prace-ri.eu/ueabs/GROMACS/2.2/GROMACS_TestCaseC.tar.xz">Test Case C</a></li>
Walter Lioen's avatar
Walter Lioen committed
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td></td>
      <td></td>
      <td>X</td>
      <td>X</td>
Dimitris Dellis's avatar
Dimitris Dellis committed
      <td>GROMACS is a versatile package to perform molecular dynamics, i.e. simulate the Newtonian equations of motion for systems with hundreds to millions of particles.</td>
Walter Lioen's avatar
Walter Lioen committed
    </tr>
    <tr>
      <td>NAMD
        <ul>
      <li><a href="http://www.ks.uiuc.edu/Research/namd/">website</a></li>
      <li><a href="http://www.ks.uiuc.edu/Development/Download/download.cgi?PackageName=NAMD">Source code</a></li>
      <li><a href="https://repository.prace-ri.eu/git/UEABS/ueabs/-/tree/r2.2-dev/namd">Build and Run Instructions</a></li>
Dimitris Dellis's avatar
Dimitris Dellis committed
      <li><a href="https://repository.prace-ri.eu/ueabs/NAMD/2.2/NAMD_TestCaseA.tar.gz">Test Case A</a></li>
      <li><a href="https://repository.prace-ri.eu/ueabs/NAMD/2.2/NAMD_TestCaseB.tar.gz">Test Case B</a></li>
      <li><a href="https://repository.prace-ri.eu/ueabs/NAMD/2.2/NAMD_TestCaseC.tar.gz">Test Case C</a></li>
Walter Lioen's avatar
Walter Lioen committed
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td></td>
      <td></td>
      <td></td>
      <td>X</td>
Dimitris Dellis's avatar
Dimitris Dellis committed
      <td>NAMD is a widely used molecular dynamics application designed to simulate bio-molecular systems on a wide variety of compute platforms.
Walter Lioen's avatar
Walter Lioen committed
    </tr>
    <tr>
Ozan Karsavuran's avatar
Ozan Karsavuran committed
      <td>NEMO
      <ul>
          <li><a href="https://www.nemo-ocean.eu/">website</a></li>
          <li><a href="https://forge.ipsl.jussieu.fr/nemo/chrome/site/doc/NEMO/guide/html/install.html#download-and-install-the-nemo-code">source</a></li>
          <li><a href="nemo/README.md">instructions</a></li>
Ozan Karsavuran's avatar
Ozan Karsavuran committed
          <li><a href="nemo/README.md#verification-of-results">Test Case A</a></li>
          <li><a href="nemo/README.md#verification-of-results">Test Case B</a></li>
Ozan Karsavuran's avatar
Ozan Karsavuran committed
        </ul>
      </td>
Walter Lioen's avatar
Walter Lioen committed
      <td>154,240</td>
      <td>X</td>
      <td></td>
      <td></td>
      <td>X</td>
      <td></td>
      <td></td>
      <td>X</td>
      <td>NEMO (Nucleus for European Modelling of the Ocean) is a mathematical modelling framework for research activities and prediction services in ocean and climate sciences developed by a European consortium. It is intended to be a tool for studying the ocean and its interaction with the other components of the earth climate system over a large number of space and time scales. It comprises of the core engines namely OPA (ocean dynamics and thermodynamics), SI3 (sea ice dynamics and thermodynamics), TOP (oceanic tracers) and PISCES (biogeochemical process).</td>
    </tr>
    <tr>
      <td>PFARM
	<ul>
	  <li><a href="https://www.ccpq.ac.uk/node/4">website</a></li>
          <li><a href="https://repository.prace-ri.eu/git/UEABS/ueabs/-/tree/r2.2-dev/pfarm">source</a></li>
          <li><a href="pfarm/PFARM_Build_Run_README.txt">instructions</a></li>
          <li><a href="https://repository.prace-ri.eu/ueabs/PFARM/2.2/test_case_1_atom">Test Case 1</a></li>
          <li><a href="https://repository.prace-ri.eu/ueabs/PFARM/2.2/test_case_2_mol">Test Case 2</a></li>
	</ul>
      </td>
Walter Lioen's avatar
Walter Lioen committed
      <td>21,434</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td></td>
      <td></td>
      <td></td>
      <td>PFARM uses an R-matrix ab-initio approach to calculate electron-atom and electron-molecule collisions data for a wide range of applications including atrophysics and nuclear fusion. It is written in modern Fortran/MPI/OpenMP and exploits highly-optimised dense linear algebra numerical library routines.</td>
    </tr>
    <tr>
Jacob Finkenrath's avatar
Jacob Finkenrath committed
        <ul>
        <li><a href='qcd/README.md'>see for more details</a></li>
Jacob Finkenrath's avatar
Jacob Finkenrath committed
        </ul>
Walter Lioen's avatar
Walter Lioen committed
      <td></td>
      <td></td>
      <td>X</td>
      <td>X</td>
      <td>The QCD benchmark is, unlike the other benchmarks in the PRACE application benchmark suite, not a full application but a set of 3 parts which are representative of some of the most compute-intensive parts of QCD calculations. The major application of the different parts consists of a Conjugate Gradient solver involving Wilson Dirac stencil in 4 dimension. Keywords of the QCD bencharmks kernels are: Domain Decomposition, Memory bandwidth, strong scaling, MPI latency.</td>
Walter Lioen's avatar
Walter Lioen committed
    </tr>
    <tr>
      <td>Quantum&nbsp;ESPRESSO
      <ul>
Andrew Emerson's avatar
Andrew Emerson committed
      <li><a href='https://www.quantum-espresso.org/'>Website</a></li>
      <li><a href='https://www.quantum-espresso.org/download-page/'>Source</a></li>
      <li><a href='quantum_espresso/README.md#installation-and-requirements'>Build and Run instructions</a></li>
Andrew Emerson's avatar
Andrew Emerson committed
      <li><a href='https://repository.prace-ri.eu/ueabs/Quantum_Espresso/QuantumEspresso_TestCaseA.tar.gz'>Test Case A</a></li>
      <li><a href='https://repository.prace-ri.eu/ueabs/Quantum_Espresso/QuantumEspresso_TestCaseB.tar.gz'>Test Case B</a></li>
Andrew Emerson's avatar
Andrew Emerson committed
      </ul>
      </td>
Walter Lioen's avatar
Walter Lioen committed
      <td>92,996</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td></td>
      <td></td>
      <td></td>
      <td>Quantum Espresso is an integrated suite of Open-Source computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials. It is written in MPI and OpenMP with a CUDA Fortran version
      available for Nvidia GPUs. In the benchmark suite we consider only the most used program, PWscf. </td>
Walter Lioen's avatar
Walter Lioen committed
    </tr>
    <tr>
Cedric Jourdain's avatar
Cedric Jourdain committed
      <td>SPECFEM3D
        <ul>
          <li><a href="https://geodynamics.org/cig/software/specfem3d_globe/">Website</a></li>
          <li><a href="https://github.com/geodynamics/specfem3d_globe.git">Source</a></li>
          <li><a href="specfem3D/README.md">Run and build instructions</a></li>
          <li><a href="specfem3D/test_case/SPECFEM3D_TestCase_A">Test Case A</a></li>
          <li><a href="specfem3D/test_case/SPECFEM3D_TestCase_B">Test Case B</a></li>
          <li><a href="https://github.com/geodynamics/specfem3d_globe/tree/master/EXAMPLES/small_benchmark_run_to_test_more_complex_Earth">Test Case C</a></li>
        </ul>
      </td>
      <td> ~120,000 (100k Fortran & 20k C)</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td>X</td>
Walter Lioen's avatar
Walter Lioen committed
      <td></td>
Cedric Jourdain's avatar
Cedric Jourdain committed
      <td>X</td>
Walter Lioen's avatar
Walter Lioen committed
      <td></td>
Cedric Jourdain's avatar
Cedric Jourdain committed
      <td>The software package SPECFEM3D simulates three-dimensional global and regional seismic wave propagation based upon the spectral-element method (SEM).</td>
Walter Lioen's avatar
Walter Lioen committed
    </tr>
    <tr>
Maxwell Cai's avatar
Maxwell Cai committed
      <td>TensorFlow
        <ul>
          <li><a href="https://www.tensorflow.org/">website</a></li>
          <li><a href="https://github.com/maxwelltsai/DeepGalaxy">source</a></li>
          <li><a href="tensorflow/README.md">instructions</a></li>
          <li><a href="tensorflow/Testcase_A">Test Case A</a></li>
          <li><a href="tensorflow/Testcase_B">Test Case B</a></li>
          <li><a href="tensorflow/Testcase_C">Test Case C</a></li>
        </ul>
      </td>
      <td>~3,000,000</td>
Maxwell Cai's avatar
Maxwell Cai committed
      <td>X</td>
      <td>X</td>
      <td>X</td>
Walter Lioen's avatar
Walter Lioen committed
      <td></td>
Maxwell Cai's avatar
Maxwell Cai committed
      <td>X</td>
      <td>X</td>
      <td>X</td>
      <td>TensorFlow is a popular open-source library for symbolic math and linear algebra, with particular optimisation for neural-networks-based machine learning workflow. Maintained by Google, it is widely used for research and production in both the academia and the industry.</td>
Walter Lioen's avatar
Walter Lioen committed
    </tr>
  </tbody>
</table>
Walter Lioen's avatar
Walter Lioen committed
_**TODO for all BCOs: move all information below this line either in the Table above (using a short version in "Code Description/Notes") or to your top-level README / description. (And when done, remove the relevant text below.)**_

Walter Lioen's avatar
Walter Lioen committed

Valeriu Codreanu's avatar
Valeriu Codreanu committed
- [ALYA](#alya)
- [Code_Saturne](#saturne)
- [CP2K](#cp2k)
- [GADGET](#gadget)
- [GPAW](#gpaw)
- [GROMACS](#gromacs)
- [NAMD](#namd)
Andrew Sunderland's avatar
Andrew Sunderland committed
- [PFARM](#pfarm)
Valeriu Codreanu's avatar
Valeriu Codreanu committed
- [QCD](#qcd)
Valeriu Codreanu's avatar
Valeriu Codreanu committed
- [SPECFEM3D](#specfem3d)
Maxwell Cai's avatar
Maxwell Cai committed

Valeriu Codreanu's avatar
Valeriu Codreanu committed
# GADGET <a name="gadget"></a>

Miguel Avillez's avatar
Miguel Avillez committed
GADGET-4 (GAlaxies with Dark matter and Gas intEracT), an evolved and improved version of GADGET-3, is a freely available code for cosmological N-body/SPH simulations on massively parallel computers with distributed memory written mainly by Volker Springel, Max-Plank-Institute for Astrophysics, Garching, Germany, nd benefiting from numerous contributions, including Ruediger Pakmor, Oliver Zier, and Martin Reinecke. GADGET-4 supports collisionless simulations and smoothed particle hydrodynamics on massively parallel computers. All communication between concurrent execution processes is done either explicitly by means of the message passing interface (MPI), or implicitly through shared-memory accesses on processes on multi-core nodes. The code is mostly written in ISO C++ (assuming the C++11 standard), and should run on all parallel platforms that support at least MPI-3. So far, the compatibility of the code with current Linux/UNIX-based platforms has been confirmed on a large number of systems.
Valeriu Codreanu's avatar
Valeriu Codreanu committed

Miguel Avillez's avatar
Miguel Avillez committed
The code can be used for plain Newtonian dynamics, or for cosmological integrations in arbitrary cosmologies, both with or without periodic boundary conditions. Stretched periodic boxes, and special cases such as simulations with two periodic dimensions and one non-periodic dimension are supported as well. The modeling of hydrodynamics is optional. The code is adaptive both in space and in time, and its Lagrangian character makes it particularly suitable for simulations of cosmic structure formation. Several post-processing options such as group- and substructure finding, or power spectrum estimation are built in and can be carried out on the fly or applied to existing snapshots. Through a built-in cosmological initial conditions generator, it is also particularly easy to carry out cosmological simulations. In addition, merger trees can be determined directly by the code.

- Web site: https://wwwmpa.mpa-garching.mpg.de/gadget4
- Code download: https://gitlab.mpcdf.mpg.de/vrs/gadget4
- Build and run instructions: https://wwwmpa.mpa-garching.mpg.de/gadget4/02_running.html
Miguel Avillez's avatar
Miguel Avillez committed
- Benchmarks:
Miguel Avillez's avatar
Miguel Avillez committed
    - [Case A: Colliding galaxies with star formation](./gadget/4.0/gadget4-case-A.tar.gz)
    - [Case B: Cosmological DM-only simulation with IC creation](./gadget/4.0/gadget4-case-B.tar.gz)
    - [Case C: Adiabatic collapse of a gas sphere](./gadget/4.0/gadget4-case-C.tar.gz)
Miguel Avillez's avatar
Miguel Avillez committed
- [Code used in the benchmarks](./gadget/4.0/gadget4.tar.gz)
Miguel Avillez's avatar
Miguel Avillez committed
- [Build & run instructions, details about the benchmarks](./gadget/4.0/README.md)