Implementation Issues for High Performance CFD

Markus Nordén, Malik Silva, Sverker Holmgren, Michael Thuné, Richard Wait


Many important phenomena in nature are modeled by partial differential equations (PDEs). Such equations describe flow of air, water, oil and other substances and propagation of electromagnetic and sound waves in different media. Also, PDEs arise in many other application areas ranging from chemistry to economy. In the present paper, the focus is on computational fluid dynamics, CFD. Issues regarding efficient implementation of CFD programs on modern parallel computers are considered.

We study a computational kernel for a solver for compressible flow problems, e.g. arising when computing the air flow around an aircraft, using a state-of-the-art algorithm of Jameson-type. The solver uses a finite volume discretization combined with a Gauss-Seidel-Newton technique to solve the Euler equations. This PDE is non-linear, the solution is vector valued and the computations are carried out on a three dimensional curvilinear grid. Furthermore, modern numerical techniques such as multigrid and flux-splitting schemes are used in the solution process.

We have experimented with different optimization techniques in order to make the implementation efficient. The program uses the red-black ordering for the Gauss-Seidel smoother, and preliminary results for a parallel version show that it scales well on a shared-memory machine.