Veros v0.1 – a fast and versatile ocean simulator in pure Python
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 com...
Published in: | Geoscientific Model Development |
---|---|
Main Authors: | , , , , , , |
Format: | Article in Journal/Newspaper |
Language: | English |
Published: |
Copernicus Publications
2018
|
Subjects: | |
Online Access: | https://doi.org/10.5194/gmd-11-3299-2018 https://doaj.org/article/7a223ad125c5469da44ca0a96b7954f2 |
id |
ftdoajarticles:oai:doaj.org/article:7a223ad125c5469da44ca0a96b7954f2 |
---|---|
record_format |
openpolar |
spelling |
ftdoajarticles:oai:doaj.org/article:7a223ad125c5469da44ca0a96b7954f2 2023-05-15T17:33:31+02:00 Veros v0.1 – a fast and versatile ocean simulator in pure Python D. Häfner R. L. Jacobsen C. Eden M. R. B. Kristensen M. Jochum R. Nuterman B. Vinter 2018-08-01T00:00:00Z https://doi.org/10.5194/gmd-11-3299-2018 https://doaj.org/article/7a223ad125c5469da44ca0a96b7954f2 EN eng Copernicus Publications https://www.geosci-model-dev.net/11/3299/2018/gmd-11-3299-2018.pdf https://doaj.org/toc/1991-959X https://doaj.org/toc/1991-9603 doi:10.5194/gmd-11-3299-2018 1991-959X 1991-9603 https://doaj.org/article/7a223ad125c5469da44ca0a96b7954f2 Geoscientific Model Development, Vol 11, Pp 3299-3312 (2018) Geology QE1-996.5 article 2018 ftdoajarticles https://doi.org/10.5194/gmd-11-3299-2018 2022-12-31T09:05:20Z 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. Article in Journal/Newspaper North Atlantic Southern Ocean Directory of Open Access Journals: DOAJ Articles Southern Ocean Geoscientific Model Development 11 8 3299 3312 |
institution |
Open Polar |
collection |
Directory of Open Access Journals: DOAJ Articles |
op_collection_id |
ftdoajarticles |
language |
English |
topic |
Geology QE1-996.5 |
spellingShingle |
Geology QE1-996.5 D. Häfner R. L. Jacobsen C. Eden M. R. B. Kristensen M. Jochum R. Nuterman B. Vinter Veros v0.1 – a fast and versatile ocean simulator in pure Python |
topic_facet |
Geology QE1-996.5 |
description |
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. |
format |
Article in Journal/Newspaper |
author |
D. Häfner R. L. Jacobsen C. Eden M. R. B. Kristensen M. Jochum R. Nuterman B. Vinter |
author_facet |
D. Häfner R. L. Jacobsen C. Eden M. R. B. Kristensen M. Jochum R. Nuterman B. Vinter |
author_sort |
D. Häfner |
title |
Veros v0.1 – a fast and versatile ocean simulator in pure Python |
title_short |
Veros v0.1 – a fast and versatile ocean simulator in pure Python |
title_full |
Veros v0.1 – a fast and versatile ocean simulator in pure Python |
title_fullStr |
Veros v0.1 – a fast and versatile ocean simulator in pure Python |
title_full_unstemmed |
Veros v0.1 – a fast and versatile ocean simulator in pure Python |
title_sort |
veros v0.1 – a fast and versatile ocean simulator in pure python |
publisher |
Copernicus Publications |
publishDate |
2018 |
url |
https://doi.org/10.5194/gmd-11-3299-2018 https://doaj.org/article/7a223ad125c5469da44ca0a96b7954f2 |
geographic |
Southern Ocean |
geographic_facet |
Southern Ocean |
genre |
North Atlantic Southern Ocean |
genre_facet |
North Atlantic Southern Ocean |
op_source |
Geoscientific Model Development, Vol 11, Pp 3299-3312 (2018) |
op_relation |
https://www.geosci-model-dev.net/11/3299/2018/gmd-11-3299-2018.pdf https://doaj.org/toc/1991-959X https://doaj.org/toc/1991-9603 doi:10.5194/gmd-11-3299-2018 1991-959X 1991-9603 https://doaj.org/article/7a223ad125c5469da44ca0a96b7954f2 |
op_doi |
https://doi.org/10.5194/gmd-11-3299-2018 |
container_title |
Geoscientific Model Development |
container_volume |
11 |
container_issue |
8 |
container_start_page |
3299 |
op_container_end_page |
3312 |
_version_ |
1766132046284980224 |