Journal cover Journal topic
Geoscientific Model Development An interactive open-access journal of the European Geosciences Union
Journal topic

Journal metrics

IF value: 5.240
IF5.240
IF 5-year value: 5.768
IF 5-year
5.768
CiteScore value: 8.9
CiteScore
8.9
SNIP value: 1.713
SNIP1.713
IPP value: 5.53
IPP5.53
SJR value: 3.18
SJR3.18
Scimago H <br class='widget-line-break'>index value: 71
Scimago H
index
71
h5-index value: 51
h5-index51
Volume 8, issue 3
Geosci. Model Dev., 8, 473–483, 2015
https://doi.org/10.5194/gmd-8-473-2015
© Author(s) 2015. This work is distributed under
the Creative Commons Attribution 3.0 License.
Geosci. Model Dev., 8, 473–483, 2015
https://doi.org/10.5194/gmd-8-473-2015
© Author(s) 2015. This work is distributed under
the Creative Commons Attribution 3.0 License.

Development and technical paper 06 Mar 2015

Development and technical paper | 06 Mar 2015

A generic simulation cell method for developing extensible, efficient and readable parallel computational models

I. Honkonen I. Honkonen
  • Heliophysics Science Division, Goddard Space Flight Center, NASA, Greenbelt, Maryland, USA
  • previously at: Earth Observation, Finnish Meteorological Institute, Helsinki, Finland

Abstract. I present a method for developing extensible and modular computational models without sacrificing serial or parallel performance or source code readability. By using a generic simulation cell method I show that it is possible to combine several distinct computational models to run in the same computational grid without requiring modification of existing code. This is an advantage for the development and testing of, e.g., geoscientific software as each submodel can be developed and tested independently and subsequently used without modification in a more complex coupled program. An implementation of the generic simulation cell method presented here, generic simulation cell class (gensimcell), also includes support for parallel programming by allowing model developers to select which simulation variables of, e.g., a domain-decomposed model to transfer between processes via a Message Passing Interface (MPI) library. This allows the communication strategy of a program to be formalized by explicitly stating which variables must be transferred between processes for the correct functionality of each submodel and the entire program. The generic simulation cell class requires a C++ compiler that supports a version of the language standardized in 2011 (C++11). The code is available at https://github.com/nasailja/gensimcell for everyone to use, study, modify and redistribute; those who do are kindly requested to acknowledge and cite this work.

Publications Copernicus
Download
Short summary
A programming method in the C++ language is presented that allows developers of scientific numerical simulations to better reuse already developed software leading to less time and effort spent on writing code. A software package is also presented which allows simulation developers to more easily take advantage of the introduced programming method in both desktop and supercomputing environments.
A programming method in the C++ language is presented that allows developers of scientific...
Citation