ECCOMAS 2024

Accelerating the FlowSimulator: Mixed Precision Linear Solvers in Industrial Grade CFD

  • Wendler, Johannes (DLR Institute of Software Methods for Product)
  • Huismann, Immo (DLR Institute of Software Methods for Product)
  • Krzikalla, Olaf (DLR Institute of Software Methods for Product)
  • Rempke, Arne (DLR Institute of Software Methods for Product)

Please login to view abstract download link

A common way to speed up linear solvers is to reduce the precision where it is not needed (e.g. in the preconditioner). Therefore, we implemented mixed precision in a sparse linear system solver called Spliss. In Spliss, different solver components can be chained together to form flexible solver stacks with preconditioners. A new solver component casts the preconditioners down to single precision and their results back up to double precision. Where and how to use mixed precision in the solver stack can then be chosen by the user. The internal data structures of Spliss also allow to apply the cast to the system matrix only. In this case, the solution and the right-hand vectors, as well as the actual calculations, are still in double precision. This allows for higher accuracy compared to a full cast to single precision while still benefiting from the largest memory bandwidth savings, the matrix. We benchmarked the CRM test case using our CFD solver CODA, which uses Spliss as linear solver. Depending on the solver configuration and the used computer hardware, we observed a speedup of the simulation runtime in CODA of > 2 in some cases (see Figure 1).