SPEChpc™ 2021 Benchmark Description

605.lbm_s (D2Q37)

Submitted by Sebastiano Fabio Schifano sebastiano.schifano __at__ unife.it

Authors listed in alphabetic order:

----------------------------------

- Luca Biferale (University of Rome "Tor Vergata" and INFN)
- Enrico Calore (University of Ferrara and INFN)
- Alessandro Gabbana (University of Ferrara and INFN)
- Mauro Sbragaglia (University of Rome "Tor Vergata" and INFN)
- Andrea Scagliarini (CNR-IAC, Roma)
- Sebastiano Fabio Schifano (University of Ferrara and INFN)(*)
- Raffaele Tripiccione (University of Ferrara and INFN)

We also thanks the following students:

-------------------------------------

- Elisa Pellegrini (University of Ferrara)
- Marco Zanella (University of Ferrara)

Computational Fluid Dynamics

D2Q37 is a Computational Fluid Dynamics code for simulating 2D-fluids using the Lattice Boltzmann Method (LBM) with 37 components of velocity. From a physics point of view, this model improves the accuracy of simpler LBM methods -- e.g. D2Q7 or D2Q9 -- as it is able to describe in full details the thermo-hydrodynamical behavior of a fluid, whose equation of state is that of a perfect gas. Computation is performed in double-precision, and the code includes two computational relevant kernels: one kernel, "propagate", is strongly memory bound, and the other, "collide", is compute bound with an arithmetic intensity of approx 11 FLOP/BYTE. The two kernels are therefore able to stress and benchmark both the memory and computation sub-systems of recent GPU and CPU processors. The code is implemented in several versions, including MPI+CUDA and MPI+OPENACC running on GPU-clusters, and also MPI+C, running on CPUs clusters. The MPI+CUDA and MPI+OpenACC versions also support CUDA-aware MPI communications that overlap with compute, while the MPI+C version is vectorized and multithreaded. The code supports 1D and 2D domain decomposition.

The control file provides -- one per row -- the following input parameters:

- X-dimension of lattice
- Y-dimension of lattice
- number of iterations
- seed for random number generator

The code performs the simulation, and at the end it checks that the fluid mass in the whole simulation domain has not changed from its initial value (up to a relative error of 10^{-10}). This simple check is enough to make sure that the code has executed correctly.

Mass check: PASSED.Otherwise, the message warns that the check FAILED and displays the initial and final values of the mass together with the corresponding relative error. The following is an example of message in case of check failure:

Mass check: FAILED 8.8510211292e+06 <> 8.8510211178e+06 (Er: 1.287987e-09).

- C
- POSIX

None

None

None

Application Version: 1.6.29

License: BSD 3 Clause

- http://dx.doi.org/10.1016/j.parco.2016.08.005
- http://dx.doi.org/10.1002/cpe.3862

Last updated: $Date$