Geoscientific Model Development (Nov 2019)

OpenArray v1.0: a simple operator library for the decoupling of ocean modeling and parallel computing

  • X. Huang,
  • X. Huang,
  • X. Huang,
  • X. Huang,
  • X. Huang,
  • D. Wang,
  • D. Wang,
  • Q. Wu,
  • Y. Li,
  • S. Zhang,
  • Y. Chen,
  • M. Wang,
  • M. Wang,
  • Y. Gao,
  • Q. Tang,
  • Y. Chen,
  • Z. Fang,
  • Z. Song,
  • Z. Song,
  • G. Yang,
  • G. Yang

DOI
https://doi.org/10.5194/gmd-12-4729-2019
Journal volume & issue
Vol. 12
pp. 4729 – 4749

Abstract

Read online

Rapidly evolving computational techniques are making a large gap between scientific aspiration and code implementation in climate modeling. In this work, we design a simple computing library to bridge the gap and decouple the work of ocean modeling from parallel computing. This library provides 12 basic operators that feature user-friendly interfaces, effective programming, and implicit parallelism. Several state-of-the-art computing techniques, including computing graph and just-in-time compiling, are employed to parallelize the seemingly serial code and speed up the ocean models. These operator interfaces are designed using native Fortran programming language to smooth the learning curve. We further implement a highly readable and efficient ocean model that contains only 1860 lines of code but achieves a 91 % parallel efficiency in strong scaling and 99 % parallel efficiency in weak scaling with 4096 Intel CPU cores. This ocean model also exhibits excellent scalability on the heterogeneous Sunway TaihuLight supercomputer. This work presents a promising alternative tool for the development of ocean models.