A generic simulation cell method for developing extensible, efficient and readable parallel computational models
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 comput...
Main Author: | |
---|---|
Format: | Article |
Language: | English |
Published: |
Copernicus Publications
2015-03-01
|
Series: | Geoscientific Model Development |
Online Access: | http://www.geosci-model-dev.net/8/473/2015/gmd-8-473-2015.pdf |
Summary: | 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
<a href="https://github.com/nasailja/gensimcell"target="_blank">https://github.com/nasailja/gensimcell</a> for everyone to use, study,
modify and redistribute; those who do are kindly requested to acknowledge
and cite this work. |
---|---|
ISSN: | 1991-959X 1991-9603 |