Coupling containerized models¶
Containerization allows models to be run in any environment that supports Docker, making them more portable and easier to reuse. It also ensures that the models are built with consistent dependencies, improving their sustainability.
Overview¶
In this project, we use Docker to containerize several models from the CSDMS Model Repository. The models are written in C, C++, Fortran, and Python. Images of the models are hosted and made publicly available on Docker Hub. Each model has a Basic Model Interface (BMI), allowing it to be controlled with a set of common functions.
To facilitate model coupling, we used grpc4bmi, software developed by the Netherlands eScience Center, which allows communication with BMI functions in a container through the Google Remote Procedure Call (gRPC) framework. The BMI functions for each model are exposed as endpoints in a container by a grpc4bmi server. A grpc4bmi client, written in Python, can then make calls to the containerized BMI functions.
Topics¶
Containerizing the BMI mappings and example models for C, C++, Fortran, and Python
Containerizing the grpc4bmi software
Building grpc4bmi servers for
the BMI exampls models
models from the CSDMS Model Repository
Running models with the grpc4bmi Python client
Acknowledgments¶
This work is supported by the U.S. National Science Foundation under Award No. 2103878, Frameworks: Collaborative Research: Integrative Cyberinfrastructure for Next-Generation Modeling Science.