Presentation is loading. Please wait.

Presentation is loading. Please wait.

MODPI: A parallel MOdel Data Passing Interface for integrating legacy environmental system models A. Dozier, O. David, Y. Zhang, and M. Arabi.

Similar presentations


Presentation on theme: "MODPI: A parallel MOdel Data Passing Interface for integrating legacy environmental system models A. Dozier, O. David, Y. Zhang, and M. Arabi."— Presentation transcript:

1 MODPI: A parallel MOdel Data Passing Interface for integrating legacy environmental system models A. Dozier, O. David, Y. Zhang, and M. Arabi

2 Motivations  Different languages, frameworks, operating systems  Two-way feedbacks between legacy models  Refactoring legacy code is difficult  To program  Many lines of code  Reproducing model outputs correctly  To maintain  Updating model versions  To adopt  Little to no community adoption of code  When refactored by third party  When significantly changed

3 Goals & Objectives  Goal  “to facilitate and abstract the legacy model integration process to include complex, multi-directional interactions between models… of different architectures and maintain model individuality”  Objectives  Design abstract interface for simplicity  Apply the interface

4 Comparison between two methods of integration Calling one as subroutineUsing MODPI Model 2 Read inputs Execute Write outputs Model 1 Read inputs Execute Write outputs Execute Write outputs Model 1 Read inputs Execute Write outputs Model 2 Read inputs Execute Write outputs MPI network communication

5 Model 2 Wrapper MODPI Implementation Model 1 Wrapper (User-specified) MODPI Implementation modpi_init() -Subscribes to events by name -Initializes MPI modpi_finalize() MOdel Data Passing Interface (MODPI) Model 1 Start Daily Loop …Perform work… End Daily Loop End On Start On Top Loop On Bottom Loop On End Model 2 Start Daily Loop …Perform work… End Daily Loop End On Top Loop Senders Receivers Events mpirun or mpiexec

6 Sample implementation  DayCent-HYDRUS  DayCent estimates biogeochemical fluxes  HYDRUS provides physically-based representation of soil water content  Two different implementations  “SUB”: call HYDRUS as a subroutine within DayCent  “MODPI”: DayCent-HYDRUS linked using MODPI

7 Sample implementation  Code changes

8 Sample implementation  Runtime and overhead

9 Discussion  Advantages  Framework and language independent  Multi-lingual and (hopefully) multi-platform  Non-intrusive event-based system  Built-in parallelization and communication via MPI  Limitations  May produce overhead in virtualized environments  Requires MPI  Framework must be compatible with MPI  May require some knowledge of MPI programming

10 Future Work  Use “reflection” to lookup variable by string  Use a range of processes to broadcast values  Automate data transformations  Run tests across Windows and Linux  Generate Fortan or C code for initial model integration wrapper

11 Questions?

12

13 References  Images  Language Language  Stop and listen Stop and listen

14  Advantages  Simple concept  Simple programming  Disadvantages  Computationally inefficient  Convergence of iterations? Option 1 – Iterative Model 1 Model 2 Write new inputs Converged? Read outputs Exit No? Yes!

15 Model 2 Read inputs Execute Write outputs  Advantages  Computationally efficient  Disadvantages  Medium to hard concept  Medium to hard programming  Maintain separate code base Option 2 – Call model as sub-model Model 1 Read inputs Execute Write outputs Execute Write outputs

16 Implementing MODPI  Add events  Minimal model refactoring  Build sender and receiver subroutines  Build subroutine to point to events within the model  Build a wrapper program  Call modpi_init()  Run model  Call modpi_finalize()  Define input text files  Run mpirun or mpiexec


Download ppt "MODPI: A parallel MOdel Data Passing Interface for integrating legacy environmental system models A. Dozier, O. David, Y. Zhang, and M. Arabi."

Similar presentations


Ads by Google