Preprints
https://doi.org/10.5194/gmd-2020-257
https://doi.org/10.5194/gmd-2020-257

Submitted as: model description paper 22 Oct 2020

Submitted as: model description paper | 22 Oct 2020

Review 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 Turner1 and Samuel N. Stechmann1,2 Jason Louis Turner and Samuel N. Stechmann
  • 1Department of Mathematics, University of Wisconsin–Madison, Madison, WI, USA
  • 2Department of Atmospheric and Oceanic Sciences, University of Wisconsin–Madison, Madison, WI, USA

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.

Jason Louis Turner and Samuel N. Stechmann

 
Status: closed
Status: closed
AC: Author comment | RC: Referee comment | SC: Short comment | EC: Editor comment
Printer-friendly Version - Printer-friendly version Supplement - Supplement
 
Status: closed
Status: closed
AC: Author comment | RC: Referee comment | SC: Short comment | EC: Editor comment
Printer-friendly Version - Printer-friendly version Supplement - Supplement

Jason Louis Turner and Samuel N. Stechmann

Model code and software

EZ Parallel 1.0 Jason L. Turner and Samuel Stechmann https://doi.org/10.5281/zenodo.4107203

Jason Louis Turner and Samuel N. Stechmann

Viewed

Total article views: 344 (including HTML, PDF, and XML)
HTML PDF XML Total BibTeX EndNote
258 82 4 344 9 7
  • HTML: 258
  • PDF: 82
  • XML: 4
  • Total: 344
  • BibTeX: 9
  • EndNote: 7
Views and downloads (calculated since 22 Oct 2020)
Cumulative views and downloads (calculated since 22 Oct 2020)

Viewed (geographical distribution)

Total article views: 237 (including HTML, PDF, and XML) Thereof 233 with geography defined and 4 with unknown origin.
Country # Views %
  • 1
1
 
 
 
 
Latest update: 26 Feb 2021
Download
Short summary
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.