Neko: A Modern, Portable, and Scalable Framework for High-Fidelity Computational Fluid Dynamics
Recent trends and advancements including more diverse and heterogeneous hardware in High-Performance Computing are challenging scientific software developers in their pursuit of good performance and efficient numerical methods. As a result, the well-known maxim “software outlives hardware” may no longer necessarily hold true, and researchers are today forced to re-factor their codes to leverage these powerful new heterogeneous systems. We present Neko – a portable framework for high-fidelity spectral element flow simulations. Unlike prior works, Neko adopts a modern object-oriented Fortran 2008 approach, allowing multi-tier abstractions of the solver stack and facilitating various hardware backends ranging from general-purpose processors, accelerators down to exotic vector processors and Field-Programmable Gate Arrays (FPGAs) via Neko’s device abstraction layer. Focusing on the performance and accuracy of Neko, we show the first direct numerical simulation (DNS) of a Flettner rotor submerged in a turbulent boundary layer, observing excellent agreement of lift with experimental data. Using a mesh with five million spectral elements, which turns into more than a billion unique degrees of freedom, the simulation requires less than three days to complete on accelerated systems compared to weeks on traditional non-accelerated systems. Finally, we present performance measurements on a wide range of accelerated computing platforms, including the EuroHPC pre-exascale system LUMI, where Neko achieves excellent parallel efficiency for a large DNS of turbulent fluid flow using up to 80% of the entire LUMI supercomputer.