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

Slides:



Advertisements
Similar presentations
Traditional Approach to Design
Advertisements

Alternate Software Development Methodologies
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
Software Architecture Design Instructor: Dr. Jerry Gao.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
SWE Introduction to Software Engineering
Google Android as a mobile development platform T Internet Technologies for Mobile Computing Olli Mäkinen.
Establishing the overall structure of a software system
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Architectural Design, Distributed Systems Architectures
Course Instructor: Aisha Azeem
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Fundamentals of Python: From First Programs Through Data Structures
Fundamentals of Python: First Programs
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
KWIC Project – Part 1 Mini-Project to Evaluate Architectural Patterns(Styles) Carl Chesser Ji Li EECS 761.
The Old World Meets the New: Utilizing Java Technology to Revitalize and Enhance NASA Scientific Legacy Code Michael D. Elder Furman University Hayden.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Architectural Design, Distributed Systems Architectures
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Architectural Design To explain the advantages and disadvantages of different distributed systems architectures To discuss client-server and distributed.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
A Framework for Elastic Execution of Existing MPI Programs Aarthi Raveendran Tekin Bicer Gagan Agrawal 1.
GraphLab: how I understood it with sample code Aapo Kyrola, Carnegie Mellon Univ. Oct 1, 2009.
A Framework for Elastic Execution of Existing MPI Programs Aarthi Raveendran Graduate Student Department Of CSE 1.
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Chapter 6 – Architectural Design CSE-411, Dr. Shamim H Ripon.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Architectural Design 10/24/2015ICS 413 – Software Engineering1.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
CS.436 Software Engineering By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 8 Architectural Design Slide 1 1 Chapter 8 Architectural Design.
First BlueJ Day Houston, 2006 Unit Testing with BlueJ Bruce Quig Deakin University.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
Framework for MDO Studies Amitay Isaacs Center for Aerospace System Design and Engineering IIT Bombay.
Improving I/O with Compiler-Supported Parallelism Why Should We Care About I/O? Disk access speeds are much slower than processor and memory access speeds.
CS533 - Concepts of Operating Systems 1 The Mach System Presented by Catherine Vilhauer.
Model View Controller MVC Web Software Architecture.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 7: Architectural Design Chapter 11 in textbook 1.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Model Integration with SWAT A publish-subscribe type system June 24, 2013 André Dozier and Olaf David.
©Ian Sommerville, Robin Abraham 2004CS 361, Summer 2004 Slide 1 Architectural Design.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Michael J. Voss and Rudolf Eigenmann PPoPP, ‘01 (Presented by Kanad Sinha)
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
BZUPAGES.COMSoftware Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
Computer System Structures
IS301 – Software Engineering Dept of Computer Information Systems
In-situ Visualization using VisIt
Software Engineering Architectural Design Chapter 6 Dr.Doaa Sami
Part 3 Design What does design mean in different fields?
Chapter 2: System Structures
Princess Nourah bint Abdulrahman University
Software Architecture
Architectural Design.
Direct Manipulation.
Implementation Plan system integration required for each iteration
Presentation transcript:

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

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

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

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

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

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

Sample implementation  Code changes

Sample implementation  Runtime and overhead

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

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

Questions?

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

 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!

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

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