fv3gfs-wrapper: a Python']Python wrapper of the FV3GFS atmospheric model

被引:13
作者
McGibbon, Jeremy [1 ]
Brenowitz, Noah D. [1 ]
Cheeseman, Mark [1 ]
Clark, Spencer K. [1 ,2 ]
Dahm, Johann P. S. [1 ]
Davis, Eddie C. [1 ]
Elbert, Oliver D. [1 ,2 ]
George, Rhea C. [1 ]
Harris, Lucas M. [2 ]
Henn, Brian [1 ]
Kwa, Anna [1 ]
Perkins, W. Andre [1 ]
Watt-Meyer, Oliver [1 ]
Wicky, Tobias F. [1 ]
Bretherton, Christopher S. [1 ,3 ]
Fuhrer, Oliver [1 ]
机构
[1] Vulcan Inc, Seattle, WA 98104 USA
[2] NOAA, Geophys Fluid Dynam Lab, Princeton, NJ USA
[3] Univ Washington, Dept Atmospher Sci, Seattle, WA 98195 USA
关键词
D O I
10.5194/gmd-14-4401-2021
中图分类号
P [天文学、地球科学];
学科分类号
07 ;
摘要
Simulation software in geophysics is traditionally written in Fortran or C++ due to the stringent performance requirements these codes have to satisfy. As a result, researchers who use high-productivity languages for exploratory work often find these codes hard to understand, hard to modify, and hard to integrate with their analysis tools. fv3gfs-wrapper is an open-source Python-wrapped version of the NOAA (National Oceanic and Atmospheric Administration) FV3GFS (Finite-Volume Cubed-Sphere Global Forecast System) global atmospheric model, which is coded in Fortran. The wrapper provides simple interfaces to progress the Fortran main loop and get or set variables used by the Fortran model. These interfaces enable a wide range of use cases such as modifying the behavior of the model, introducing online analysis code, or saving model variables and reading forcings directly to and from cloud storage. Model performance is identical to the fully compiled Fortran model, unless routines to copy the state in and out of the model are used. This copy overhead is well within an acceptable range of performance and could be avoided with modifications to the Fortran source code. The wrapping approach is outlined and can be applied similarly in other Fortran models to enable more productive scientific workflows.
引用
收藏
页码:4401 / 4409
页数:9
相关论文
共 29 条
  • [1] [Anonymous], 2009, MPI MESSAGE PASSING
  • [2] [Anonymous], 1991, GLOBAL ENG DOCUMENTS
  • [3] [Anonymous], 2019, JINJ
  • [4] A Survey of Recent Trends in Testing Concurrent Software Systems
    Bianchi, Francesco Adalberto
    Margara, Alessandro
    Pezze, Mauro
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2018, 44 (08) : 747 - 783
  • [5] Spatially Extended Tests of a Neural Network Parametrization Trained by Coarse-Graining
    Brenowitz, Noah D.
    Bretherton, Christopher S.
    [J]. JOURNAL OF ADVANCES IN MODELING EARTH SYSTEMS, 2019, 11 (08) : 2728 - 2744
  • [6] Curcic M., 2019, ABS190206714 CORR
  • [7] MPI for Python']Python:: Performance improvements and MPI-2 extensions
    Dalcin, Lisandro
    Paz, Rodrigo
    Storti, Mario
    D'Elia, Jorge
    [J]. JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2008, 68 (05) : 655 - 662
  • [8] GPAW - massively parallel electronic structure calculations with Python']Python-based software
    Enkovaara, Jussi
    Romero, Nichols A.
    Shende, Sameer
    Mortensen, Jens J.
    [J]. PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE (ICCS), 2011, 4 : 17 - 25
  • [9] Feng Y., 2021, PYTHON MPI BCAST
  • [10] Hand N., 2017, P 7 WORKSH PYTH HIGH, DOI [10.1145/3149869.3149876, DOI 10.1145/3149869.3149876]