Journal metrics

Journal metrics

  • IF value: 4.252 IF 4.252
  • IF 5-year value: 4.890 IF 5-year 4.890
  • CiteScore value: 4.49 CiteScore 4.49
  • SNIP value: 1.539 SNIP 1.539
  • SJR value: 2.404 SJR 2.404
  • IPP value: 4.28 IPP 4.28
  • h5-index value: 40 h5-index 40
  • Scimago H index value: 51 Scimago H index 51
Volume 11, issue 8 | Copyright
Geosci. Model Dev., 11, 3299-3312, 2018
© Author(s) 2018. This work is distributed under
the Creative Commons Attribution 4.0 License.

Model description paper 16 Aug 2018

Model description paper | 16 Aug 2018

Veros v0.1 – a fast and versatile ocean simulator in pure Python

Dion Häfner1, René Løwe Jacobsen1, Carsten Eden2, Mads R. B. Kristensen1, Markus Jochum1, Roman Nuterman1, and Brian Vinter1 Dion Häfner et al.
  • 1Niels Bohr Institute, University of Copenhagen, Copenhagen, Denmark
  • 2Institut für Meereskunde, Universität Hamburg, Hamburg, Germany

Abstract. A general circulation ocean model is translated from Fortran to Python. Its code structure is optimized to exploit available Python utilities, remove simulation bottlenecks, and comply with modern best practices. Furthermore, support for Bohrium is added, a framework that provides a just-in-time compiler for array operations and that supports parallel execution on both CPU and GPU targets.

For applications containing more than a million grid elements, such as a typical 1° × 1° horizontal resolution global ocean model, Veros is approximately half as fast as the MPI-parallelized Fortran base code on 24 CPUs and as fast as the Fortran reference when running on a high-end GPU. By replacing the original conjugate gradient stream function solver with a solver from the pyAMG Python package, this particular subroutine outperforms the corresponding Fortran version by up to 1 order of magnitude.

The study is concluded with a simple application in which the North Atlantic wave response to a Southern Ocean wind perturbation is investigated. It is found that even in a realistic setting the phase speeds of boundary waves matched the expectations based on theory and idealized models.

Download & links
Publications Copernicus
Short summary
Well-performing, easy-to-use ocean models are a central ingredient to further the understanding of our Earth and climate. Veros, the versatile ocean simulator, is the first full-blown ocean model entirely written in the high-level programming language Python. It is considerably more approachable than traditional Fortran models and leverages modern best practices; at the same time, thanks to the Bohrium framework, Veros is about half as fast as a reference implementation in Fortran 90.
Well-performing, easy-to-use ocean models are a central ingredient to further the understanding...