Litcius/Paper detail

Fast, Cheap, and Turbulent—Global Ocean Modeling With GPU Acceleration in Python

Dion Häfner, Roman Nuterman, Markus Jochum

2021Journal of Advances in Modeling Earth Systems52 citationsDOIOpen Access PDF

Abstract

Abstract Even to this date, most earth system models are coded in Fortran, especially those used at the largest compute scales. Our ocean model Veros takes a different approach: it is implemented using the high‐level programming language Python. Besides numerous usability advantages, this allows us to leverage modern high‐performance frameworks that emerged in tandem with the machine learning boom. By interfacing with the JAX library, Veros is able to run high‐performance simulations on both central processing units (CPU) and graphical processing unit (GPU) through the same code base, with full support for distributed architectures. On CPU, Veros is able to match the performance of a Fortran reference, both on a single process and on hundreds of CPU cores. On GPU, we find that each device can replace dozens to hundreds of CPU cores, at a fraction of the energy consumption. We demonstrate the viability of using GPUs for earth system modeling by integrating a global 0.1° eddy‐resolving setup in single precision, where we achieve 1.3 model years per day on a single compute instance with 16 GPUs, comparable to over 2,000 Fortran processes.

Topics & Concepts

Computer sciencePython (programming language)FortranCentral processing unitComputational scienceParallel computingCUDACompilerInterfacingSupercomputerGraphics processing unitSubroutineOperating systemComputer hardwareOceanographic and Atmospheric ProcessesMeteorological Phenomena and SimulationsOcean Waves and Remote Sensing