507.cactuBSSN_r
SPEC CPU®2017 Benchmark Description

Benchmark Name

507.cactuBSSN_r

Benchmark Author

Jian Tao <jtao [at] tamu.edu>
Texas A & M Engineering Experiment Station and
High Performance Research Computing,
Texas A & M University,
College Station, TX 77843

Gabrielle Allen <gallen [at] cct.lsu.edu>
Center for Computation & Technology,
Louisiana State University,
Baton Rouge, LA 70803, USA

Peter Diener <diener [at] cct.lsu.edu>
Center for Computation & Technology,
Louisiana State University,
Baton Rouge, LA 70803, USA

Erik Schnetter <schnetter [at] cct.lsu.edu>
Center for Computation & Technology,
Louisiana State University,
Baton Rouge, LA 70803, USA

Benchmark Program General Category

Physics / General Relativity / Numerical Relativity

Benchmark Description

Based on the Cactus Computational Framework, this benchmark uses the EinsteinToolkit to solve the Einstein equations in vacuum. The numerical kernel of this benchmark, McLachlan, is automatically generated from a high level set of partial differential equations with the Kranc code generation package. As a production level code, McLachlan has been successfully used to model blackholes, gravitational waves. When coupled to other general relativistic (magneto)hydrodynamic codes, it can also be used to model white dwarfs, neutron stars, etc. In this benchmark, we model a vacuum flat space-time. We use the BSSN formulation of the Einstein equations, and employs finite differencing in space, an explicit time integration method, and relies on the memory management and communication driver PUGH (Parallel Uniform Grid Hierarchy) for distributing grid functions over processors.

Input Description

This benchmark requires a parameter file as the input. Both physics and computational parameters are specified in this file. For benchmarking, we suggest that only the computational parameters, namely the grid size and the number of iterations be changed by end users.

The total run time depends on both parameters. The parameter driver::local_nsize (60 by default) defines the total number of grid points (60x60x60), i.e., memory usage (~300MB), while Cactus::cctk_itlast (40 by default) defines the total number of iterations. The best practice is probably to set driver::local_nsize to fit the physical memory of the running system and then adjust Cactus::cctk_itlast to change.

Output Description

By default, this benchmark writes to both standard output and file system.

Programming Language

C, C++, and Fortran

Known portability issues

By default, it is assumed that the C++11 feature "static assert" is available. If you do not have that feature, you can try setting the portability flag SPEC_NO_CXX_STATIC_ASSERT.

Sources and Licensing

The benchmark is used under the GNU GPL license, and original sources are provided.

Please see details in the document SPEC CPU®2017 Licenses.

References

Copyright © 2017-2020 Standard Performance Evaluation Corporation (SPEC®)