- GEOMAR Helmholtz-Zentrum für Ozeanforschung Kiel
- Christian-Albrechts Universität zu Kiel
Today's Earth-System Models (ESM) are not designed to be interactive. They follow a configure, setup, run, and data analysis scheme. Thus, researchers often have to wait for hours or days until they can inspect model runtime diagnostic data. This causes time-consuming round trips between setup and analysis and limits interaction and insights into an ESM at runtime.
We aim to overcome this static scientific modeling process with interactive exploration of ESMs. It will allow to monitor the state of the simulation via dashboards presenting real-time diagnostics within a digital twin world. It will support to halt simulations, move back in time, and explore divergent setup at any given point in the simulation. Therefore, we have to include code in ESMs to access, store, and change data in every part, and make it available to interactive visualization dashboards.
In today's monolithic implementation of ESMs and and other scientific models, we have to modularize models and discover or recover interfaces between these modules. The modularization does not only help with restructuring existing ESMs, it also allows to integrate additional scientific domains into the interactive simulation environment.
We apply a domain-driven modularization approach utilizing reverse engineering techniques combining static and dynamic analysis of ESMs, as well as, restructuring methods to support scientists and developers in efforts to realize a modularization. Static analysis parses the program code extracting operation calls, e.g., subroutine and function calls in Fortran, as well as, data flow and derives the modular structure from this information. This structure is called an architectural model of the ESM. While the dynamic analysis is based on observations of operation calls at runtime utilizing compiler instrumentation functionality. The latter provides insights in the number of calls to an operation and allows also to observe access to program libraries. Both information are then combined to produce an architecture model comprising static and dynamic information. We then apply optimization methods to propose improved modularizations of the ESM that can be used to restructure ESM code, improve program comprehension, visualize dependencies, and allow to integrate interfaces to support interactive ESMs as part of digital twins.