Efficient checkpointing technique for the unsteady adjoint solver in SU2


Prof. Dr.-Ing. habil Stefan Becker
Institut für Strömungsmechanik
Friedrich-Alexander-Universität Erlangen-Nürnberg

Project Overview

SU2 (Stanford University Unstructured) is an MPI parallel CFD package for the numerical solution of partial differential equations and performing PDE constrained optimizations. For unsteady problems, SU2 stores a separate native restart file as well as individual solution files for each timestep resulting in an enormous file count and I/O overhead. The objective of this project was to mitigate the I/O problems of SU2 for unsteady simulations and optimizations.

The latest version of SU2 (V 7.3.1) was modified to enable efficient unsteady simulations and optimization on moderate to large grids. A new output format was implemented allowing for a non-blocking parallel output write to a single HDF5 per unsteady simulation. This output class uses the header-only interface HighFive to write the HDF5 file. The new output format has the same structure as OpenCFS I/O files and the simulation results can be visualized in ParaView using the CFS reader plugin. Furthermore, the full compatibility between the  OpenCFS and SU2 I/O files allows for coupled Flow-Structure-Acoustic simulations without any need for I/O conversion. The parallel write by all processors best utilizes the parallel file system to speed up the output process. The performance tests for unsteady simulations on a grid with 4 million cells parallelized on 5 nodes on the RRZE’s Meggie cluster show that the newly implemented format is about 30% faster than the default ParaView binary file in SU2 while taking up 32% less disk space.

The code is available on https://github.com/FAU-Aeroacoustics/SU2-Efficient-Output-Control. To use the HDF5 format, the output option PARAVIEW_CFS_H5 should be set in the configuration file. The write interval is determined by OUTPUT_WRT_FREQ. Furthermore, for unsteady optimization problems, the shape_optimization.py script should be called with the option “–minimal True”. This option assures that only the solution files are kept for all design steps except the last two iterations. As a result, the total number of files generated during the optimization can be reduced to two files (one for the primal and one for the adjoint solver) per design step.