Submitted as: model description paper |
| 22 Oct 2020
Status: this preprint was under review for the journal GMD but the revision was not accepted.
Parallelizing a serial code: open–source module, EZ Parallel 1.0,
and geophysics examples
Jason Louis Turnerand Samuel N. Stechmann
Abstract. Parallel computing can offer substantial speedup of numerical simulations in comparison to serial computing, as parallel computing uses many processors simultaneously rather than a single processor. However, it typically also requires substantial time and effort to convert a serial code into a parallel code. Here, a new module is developed to reduce the time and effort required to parallelize a serial code. The tested version of the module is written in the Fortran programming language,while the framework could also be extended to other languages (C++, Python, Julia, etc.). The Message Passing Interface is used to allow for either shared-memory or distributed-memory computer architectures. The software is designed for solving partial differential equations on a rectangular two-dimensional or three-dimensional domain, using finite difference, finite volume, pseudo-spectral, or other similar numerical methods. Examples are provided for two idealized models of atmospheric and oceanic fluid dynamics: the two-level quasi-geostrophic equations, and the stochastic heat equation as a model for turbulent advection–diffusion of either water vapor and clouds or sea surface height variability. In tests of the parallelized code, the strong scaling efficiency for the finite difference code is seen to be roughly 80 % to 90 %, which is achieved by adding roughly only 10 new lines to the serial code. Therefore, EZ Parallel provides great benefits with minimal additional effort.
Received: 03 Aug 2020 – Discussion started: 22 Oct 2020
Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this preprint. The responsibility to include appropriate place names lies with the authors.
EZ Parallel is a Fortran Message Passing Interface library designed to allow users to easily and quickly turn their serial code into a parallel one for the purpose of obtaining simulations with higher resolutions or larger domain sizes in a shorter amount of time. In tests of the parallelized code, the strong scaling efficiency for the finite difference code is seen to be roughly 80% to 90%, which is achieved by adding roughly only 10 new lines to the serial code.
EZ Parallel is a Fortran Message Passing Interface library designed to allow users to easily and...