  This work presents the development, performance analysis and subsequent
optimization of a GPU-based spectral hyperviscosity solver for turbulent flows
described by the three dimensional incompressible Navier-Stokes equations. The
method solves for the fluid velocity fields directly in Fourier space,
eliminating the need to solve a large-scale linear system of equations in order
to find the pressure field. Special focus is put on the communication intensive
transpose operation required by the fast Fourier transform when using
distributed memory parallelism. After multiple iterations of benchmarking and
improving the code, the simulation achieves close to optimal performance on the
Piz Daint supercomputer cluster, even outperforming the Cray MPI implementation
on Piz Daint in its communication routines. This optimal performance enables
the computation of large-scale statistical solutions of incompressible fluid
flows in three space dimensions.
