ESMF Code Generation with Cupid Update and Demo October 2009 Rocky Dunlap Spencer Rugaber Leo Mark Georgia Tech College of Computing.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

Expanding Regridding Capabilities of the Earth System Modeling Framework Andrew Scholbrock University of Colorado – Boulder Robert Oehmke NOAA/CIRES 1.
IAAnalyzer: Towards a Model-Driven Modeling and Analysis Framework for C ONNECT(ors) Massimo Tivoli, University of L’Aquila (UNIVAQ)
Metadata Development in the Earth System Curator Spanning the Gap Between Models and Datasets Rocky Dunlap, Georgia Tech.
© 2008 by Borland Software Corp; made available under the EPL v1.0 | 17 March 2008 Introduction to the Graphical Modeling Framework Artem Tikhomirov, Borland.
Feature Analysis of Coupling Technologies for Climate Models Spencer Rugaber, Rocky Dunlap and Leo Mark College of Computing Georgia Institute of Technology.
1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
Generative Programming for a Component-based Framework of Distributed Embedded Software Systems Xu Ke, Krzysztof Sierszecki Mads Clausen Institute for.
Department of Computer Science Business Information Systems 1 Model Interchange between ARIS and Eclipse EMF Heiko Kern and Stefan Kühne {kern,
Computers: Tools for an Information Age
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
IBM Software Group © 2005 IBM Corporation University of Nantes Eclipse dayMarch 2005 The Eclipse Modeling Framework and the IBM Model Transformation Framework.
An Overview of Computers and Programming
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
A Family of Languages for Architecture Description OOPSLA 2008 Markus Voelter
Introduction 01_intro.ppt
CLARIN tools for workflows Overview. Objective of this document  Determine which are the responsibilities of the different components of CLARIN workflows.
Xactium xDSLs Run Models Not Code Tony Clark
Metadata Creation with the Earth System Modeling Framework Ryan O’Kuinghttons – NESII/CIRES/NOAA Kathy Saint – NESII/CSG July 22, 2014.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
The Earth System Curator Metadata Representations Prototype Portal in Collaboration with ESMF and ESG Rocky Dunlap Spencer Rugaber Georgia Tech.
Obsydian OLE Automation Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.
1 A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford.
An Introduction to Programming and Object-Oriented Design Using Java By Jaime Niño and Fred Hosch Slides by Darwin Baines and Robert Burton.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Metadata for the Coupled Ocean/Atmosphere Mesoscale Prediction System (COAMPS) using the Earth System Modeling Framework (ESMF) Peter Bosler University.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
Cupid A Domain Specific Language for Coupled ESMs Rocky Dunlap Coupling Workshop Second Workshop on Coupling Technologies for Earth System Modeling.
 2003 Joel C. Adams. All Rights Reserved. Calvin CollegeDept of Computer Science(1/10) An Overview of Objects and the Java API Joel Adams and Jeremy Frens.
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
ESMF Code Generation Rocky Dunlap Spencer Rugaber Leo Mark Georgia Tech College of Computing.
Copyright © 2009 AtlanMod. All Rights Reserved Frédéric Jouault & Hugo Bruneliere AtlanMod team (INRIA & Mines de Nantes) Possible Benefits of Bridging.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
The use of modeling frameworks to facilitate interoperability Cecelia DeLuca/NCAR (ESMF) Bill Putman/NASA GSFC (MAPL) David Neckels/NCAR.
© Fraunhofer IESE Domain-specific Modeling as an Enabling Technology for SMEs Christian Schäfer
Selected Topics in Software Engineering - Distributed Software Development.
A CASE Tool For Robot Behavior Development The KSE CASE Tool - Liveness Formula Editor, text editor ‐ Liveness2IAC transformation tool ‐ Graphical Statechart.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Cupid: A Smart Development Environment for Earth System Models Rocky Dunlap research sponsored by NASA/ROSES 1.
Graphical Modeling Framework (GMF) Richard C. Gronback Project Lead.
© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 1 Model-Driven Development for Pluggable Collaborations Iris Groher, Stephan Bleicher, Christa.
UML MARTE Time Model for Spirit IP-XACT Aoste Project INRIA Sophia-Antipolis.
Page 1© Crown copyright 2004 FLUME Metadata Steve Mullerworth 3 rd -4 th October May 2006.
Overview of Previous Lesson(s) Over View  A program must be translated into a form in which it can be executed by a computer.  The software systems.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Page 1© Crown copyright 2004 FLUME Marco Christoforou, Rupert Ford, Steve Mullerworth, Graham Riley, Allyn Treshansky, et. al. 19 October 2007.
Cross Language Clone Analysis Team 2 February 3, 2011.
Curator: Gap Analysis (from a schema perspective) Rocky Dunlap Spencer Rugaber Georgia Tech.
1. 2 Purpose of This Presentation ◆ To explain how spacecraft can be virtualized by using a standard modeling method; ◆ To introduce the basic concept.
Dr. Mohamed Ramadan Saady 314ALL CH1.1 Chapter 1: Introduction to Compiling.
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
Chapter – 8 Software Tools.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
1 Budapest University of Technology and Economics Department of Measurement and Information Systems Budapest University of Technology and Economics Fault.
PROGRAMMING (1) LECTURE # 1 Programming and Languages: Telling the Computer What to Do.
The Earth System Curator Metadata Infrastructure for Climate Modeling Rocky Dunlap Georgia Tech.
Introduction to Compiler Construction
Lecture 1 Introduction Richard Gesick.
CSCI-235 Micro-Computer Applications
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Java programming lecture one
CMPE419 Mobile Application Development
Chapter 7 –Implementation Issues
Towards an Open Meta Modeling Environment
Metadata Development in the Earth System Curator
CMPE419 Mobile Application Development
Software Architecture & Design
Presentation transcript:

ESMF Code Generation with Cupid Update and Demo October 2009 Rocky Dunlap Spencer Rugaber Leo Mark Georgia Tech College of Computing

Goals Cupid supports programmers of numerical Earth System Models by: ▫Raising the level of abstraction so that modelers can think and code in terms of ESM vocabulary—not in terms of low or intermediate level programming constructs ▫Validating coupling configurations at compile time; providing error messages ▫Automatically generating FORTRAN code for coupling Earth System Modeling Framework (ESMF) components

Process Overview – Inputs & Outputs You have: ▫Fortran source code for two (or more) ESMF Gridded Components You put in: ▫A description of those components ▫A description of a coupling configuration: composition, schedule, and deployment You get out: ▫Fortran source code for an ESMF driver and an ESMF coupler component

Cupid Architecture ESMF Conceptual Model (ECM) ECM Modeling GUI ESMF Conceptual Modeling ESMF Configuration Instance ESMF Configuration Instances (ECIs) ESMF Driver Generator ESMF Code Generation ESMF Coupler Generator Java Fortran Object Model (JFOM) FORTRAN Code Generation JFOM Instances StringTemplateEclipse Modeling Framework (EMF) Textual syntax and text editor (based on Xtext)

Cupid Architecture ESMF Conceptual Model (ECM) ECM Modeling GUI ESMF Conceptual Modeling ESMF Configuration Instances (ECIs) ESMF Driver Generator ESMF Code Generation ESMF Coupler Generator Java Fortran Object Model (JFOM) FORTRAN Code Generation JFOM Instances StringTemplateEclipse Modeling Framework (EMF) Textual syntax and text editor (based on Xtext)

Cupid Architecture ESMF Conceptual Modeling ESMF Configuration Instances (ECIs) ESMF Driver Generator ESMF Code Generation ESMF Coupler Generator Java Fortran Object Model (JFOM) FORTRAN Code Generation JFOM Instances StringTemplateEclipse Modeling Framework (EMF) Textual syntax and text editor (based on Xtext) ESMF Conceptual Model (ECM) ECM Modeling GUI

The ESMF Conceptual Model (ECM) A conceptual model of ESMF API: ▫Gridded and Coupler Component, Import/Export State ▫Virtual Machine, PETs, DELayout ▫DistGrid, Array ▫Field, Grid (partial) ▫Not included (yet): Clock, Calendar Also includes new structures for describing coupling configurations: ▫Composition – how the components are connected ▫Schedule – order of execution of components ▫Deployment – map components to physical resources

Graphical Modeling

Cupid Architecture ESMF Conceptual Model (ECM) ECM Modeling GUI ESMF Conceptual Modeling ESMF Configuration Instances (ECIs) ESMF Driver Generator ESMF Code Generation ESMF Coupler Generator Java Fortran Object Model (JFOM) FORTRAN Code Generation JFOM Instances StringTemplateEclipse Modeling Framework (EMF) Textual syntax and text editor (based on Xtext)

Textual Syntax

Cupid Architecture ESMF Conceptual Model (ECM) ECM Modeling GUI ESMF Conceptual Modeling ESMF Configuration Instances (ECIs) ESMF Code Generation Java Fortran Object Model (JFOM) FORTRAN Code Generation JFOM Instances StringTemplateEclipse Modeling Framework (EMF) Textual syntax and text editor (based on Xtext) ESMF Driver Generator ESMF Coupler Generator

System Architecture ESMF Conceptual Model (ECM) ECM Modeling GUI ESMF Conceptual Modeling ESMF Configuration Instances (ECIs) ESMF Code Generation FORTRAN Code Generation StringTemplateEclipse Modeling Framework (EMF) Textual syntax and text editor (based on Xtext) ESMF Driver Generator ESMF Coupler Generator Java Fortran Object Model (JFOM) JFOM Instances

System Architecture ESMF Conceptual Model (ECM) ECM Modeling GUI ESMF Conceptual Modeling ESMF Configuration Instances (ECIs) ESMF Code Generation FORTRAN Code Generation StringTemplateEclipse Modeling Framework (EMF) Textual syntax and text editor (based on Xtext) ESMF Driver Generator ESMF Coupler Generator Java Fortran Object Model (JFOM) JFOM Instances

Building a Coupling Configuration There are two ways to create a coupling configuration (ESMF Configuration Instance): ▫Graphically using a tree-based model editor ▫Using a textual syntax and Eclipse-based editor At the end of the day, both are represented as instances of the ESMF Conceptual Model. ▫The two formats are interchangeable

Case Studies ESMF_ArrayRedistSTest ▫Two components, one-way coupling ▫user_model1 populates 100x150 global array ▫user_model2 verifies array data ▫user_model1 runs on 4 processors (PETs) with a 4x1 DELayout (i.e., four 25x150 local arrays) ▫user_model2 runs on 2 PETs with a 1x2 DELayout (i.e., two 100x75 local arrays) ESMF_FieldSparseMatMulSTest ▫Similar to above except data is packaged in Fields and redistribution is done via ESMF_ArraySMM

Demo

Models and Instances ESMF Conceptual Model (ECM) ESMF Configuration Instance (ECI) Java Fortran Object Model (JFOM) JFOM Instance FORTRAN 90 ISO Standard FORTRAN source code Model level Instance level transform conform

Current Status ECM is partially complete (~70%) ▫missing some elements from the ESMF API JFOM is partially complete (~33%) ▫missing FORTRAN constructs Code generator is “rigid” ▫geared toward the two system test cases ▫needs to be stretched with real world models Hurdles ▫How to best represent interpolation weights for Sparse Matrix Multiply.

Future Work Examples, examples, examples ▫Need to generate couplers for more realistic models Discussions with modelers/scientists ▫How can code generation increase productivity, simplify coding, and enhance model understanding? Coupling in general ▫What are the hard parts of coupling models? How can this system address them?

Thanks! Questions? code generation Springtime has finally come a happy climate

Additional slides

Existing Infrastructure Pieces Eclipse Modeling Framework ▫ ▫“…a modeling framework and code generation facility for building tools and other applications based on a structured data model” ▫Models are built using a UML-like, object-oriented metamodel called Ecore StringTemplate ▫ ▫a Java-based template engine for generating formatted text output ▫templates are strings with “holes” that can be populated programmatically and then output

JFOM: Fortran Conceptual Model ECIs are input to the code generation phase. We need an API for manipulating Fortran programs. Java Fortran Object Model (JFOM) ▫built with the Eclipse Modeling Framework ▫a set of Java classes that represent the syntactic structures of Fortran programs ▫based on the Fortran 90 grammar ▫allows programmatic manipulation of Fortran programs JFOM instances are serialized with StringTemplate

JFOM Classes JFOM classes represent the syntactic structures of Fortran 90

Generated Code Examples Examples of generated code can be found here: