1 / 27

Cupid: A Development Environment for Earth System Models

Cupid is a development tool that enhances the adoption of ESMF/NUOPC infrastructure, making it faster, easier, and more appealing for developers. It provides features such as code generation, compliance checking, and streamlined training environment.

dmaddox
Download Presentation

Cupid: A Development Environment for Earth System Models

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cupid: A Development Environment for Earth System Models Rocky Dunlap NOAA ESRL/University of Colorado Third Workshop on Coupling Technologies for Earth System Models (CW2015) Manchester, England April 20-22, 2015

  2. New Directions for ESMF The initial ESMF software fell short of the vision for common infrastructure in several ways: Implementations of ESMF-based models could vary widely and did not guarantee a minimum level of technical interoperability among sites - creation of the NUOPC Layer It was difficult to track who was using ESMF and how they were using it – initiation of the Earth System Prediction Suite There was a significant learning curve for implementing ESMF in a modeling code – Cupid Integrated Development Environment New development directions address these gaps…

  3. NUOPC Interoperability Layer • 1. Implementations of ESMF-based models could vary widely and did not guarantee a minimum level of technical interoperability among sites • ESMF: • provides common data types (field, grid, mesh, clock, etc.) and component interfaces (init, run, finalize) • BUT, there are few constraints on what happens at each model phase • RESULT: even if two independent models are built with ESMF types, more work remains to arrive at a functioning coupled system • National Unified Operational Prediction Capability(NUOPC)Consortium of U.S. operational weather and water prediction centers • Improve collaboration among agencies • Accelerate the transition of new technology into the operational centers • Technical goal: Increase interoperability of ESMF-based applications

  4. NUOPC Interoperability Layer An interoperability layer on top of ESMF that adds: • Definitions for component interactions during Initialize, Run, Finalize • Extensible, generic components that implement the component interactions above • A field dictionary, based on Climate & Forecast (CF) conventions, as the basis for a standard identification of fields between components • Component Explorer and Compliance Checker tools that report component incompatibilities detected during run-time • Static compliance checking and code generation via the Cupid Integrated Development Environment NUOPC API ESMF API https://www.earthsystemcog.org/projects/nuopc/

  5. NUOPC Layer Generic Components • Model: • Implements a specific physical domain, e.g. atmosphere, ocean, wave, ice • Connector: • Connects pairs of components in one direction, e.g. Model to/from Model, or Model to/from Mediator • Executes simple transforms (Regrid/Redist, units) • Mediator: • Scientific coupling code (flux calculations, accumulation, averaging, etc.) between (potentially multiple) Models • Driver: • Provides a harness for Models, Mediators, and Connectors (supporting hierarchies) • Coordinates initialize and run sequences

  6. Initialize Phase Definition

  7. Example Configurations of NUOPC Components

  8. The Earth System Prediction Suite • 2. It was difficult to track who was using ESMF and how they were using it • The Earth System Prediction Suite (ESPS) is a collection of weather and climate modeling codes that use ESMF with the NUOPC conventions. • The ESPS makes clear which codes are available as ESMF components and modeling systems. • Inclusion criteria: • NUOPC-compliance • A minimal, prescribed set of model documentation that conforms to the Common Information Model standard • Clear terms of use (e.g. public domain statement, open source license, proprietary status), and must have a way for credentialed collaborators to request access • Regression tests provided • Commitment to continued NUOPC-compliance and ESPS participation https://www.earthsystemcog.org/projects/esps/

  9. ESPS Code Status Spanning major climate, weather, and ocean codes, ESPS is the most directresponse to calls for common modeling infrastructure yet assembled

  10. Cupid Development Environment 3. There was a significant learning curve for implementing ESMF in a modeling code • Cupid is a development tool to make adoption of ESMF/NUOPC infrastructure faster, easier, and more appealing. • Goals: • help developers understand how the NUOPC API is used in a specific application • accelerate creation of new NUOPC components • simplify modification of existing NUOPC applications • provide an streamlined training environment by combining a diverse set of development tools into one application

  11. Cupid is a Plugin for Eclipse Cupid adds ESMF/NUOPC-specific features to the Eclipse IDE / Fortran source code editor NUOPC view Project explorer Console for viewing output

  12. Understand what’s there: Reverse Engineer an ESMF/NUOPC Application

  13. Check for issues: Static Compliance Checking • NUOPC View • compact outline of NUOPC component source code • linked with source code editor • contextual reference documentation • compliance issues shown in red

  14. Write compliant code: In-place Code Generation

  15. Cupid Demo

  16. Wizard to set up Eclipse for Training Run locally or on a cloud Select sample code or model • Pick a training problem (or coupled model) • Generate a framework-aware outline of the source code • Navigate around the source code using the outline • Use an editor to modify the source code • Automatically generate code needed for NUOPC compliance • Compile and run locally or on a cloud (currently Amazon Web Services)

  17. Cupid Release 0.1 beta • Version 0.1 beta, Jan. 9, 2015: • a reverse engineering feature for analyzing a model codebase thatalready has NUOPC conventions, • an in-place code generation feature that assists developers inworking with the NUOPC API, and • a cloud computing interface capable of spinning up pre-configuredvirtual machine instances used for modeler training (currently available internally only to ESMF developers). • Release page: • https://www.earthsystemcog.org/projects/cupid/releases • Home page with installation instructions: • https://www.earthsystemcog.org/projects/cupid/ • New users should view the: • Feature overview and tutorial

  18. Next Steps • support for specific models on specific platforms • support for full NUOPC v7 API • incorporate aspects of dynamic analysis, starting with simple ESMF log parsing • online training material

  19. Cupid is funded by the NASA Computational Modeling Algorithms and Cyberinfrastructure (CMAC) program • Collaborators: • NOAA/CIRES • Georgia Tech • NASA GISS/GSFC collaboration

  20. Thanks! https://earthsystemcog.org/projects/cupid/

  21. Extra Slides

  22. Model Codes in the ESPS Currently, components in the ESPS can be of the following types:coupled system, atmosphere, ocean, wave, sea ice Target codes include: • The Community Earth System Model (CESM) and its constituent components • The NOAA Environmental Modeling System (NEMS), including the new Climate Forecast System • The MOM5 and HYCOM oceans • SWAN and WaveWatch 3 wave models • The Navy Global Environmental Model (NavGEM)-HYCOM-CICE coupled system • The Navy Coupled Ocean Atmosphere Mesoscale Prediction System (COAMPS) and COAMPS Tropical Cyclone (COAMPS-TC) • NASA GEOS-5 • NASA ModelE

  23. Automated Code Analyses to Reduce Code Complexity You Source code Query Response

  24. Execution Platforms • Options for compilation and execution: • Your local machine • Remote machine or cluster • The cloud • Cloud option: • Designed as an option for trainees • Reduces complexity of configuring computational environment (compilers, software dependencies, security, etc.) • Reduces complexity of configuring the IDE itself • Keeps focus on training objectives

  25. Selecting the TrainingScenario or Model • Four options are available, each with a different architecture and coupling behavior: • Single Model with Driver • Coupled Atmosphere-Ocean Driver • Coupled Atmosphere-Ocean with Mediator and Driver • Model E EM20 (atmosphere only) configuration (in progress)

  26. Proposal to NASA ROSES/CMAC 2015 Program • In collaboration with Georgia Tech Professional Education, design, produce, and publish a set of interactive, online training modules about ESMF modeling infrastructure and the Cupid IDE. • Trainees will use Cupid as a companion training environment while working through course material. • Proposed Topics: • Introduction to the Earth System Modeling Framework • Working with an Integrated Development Environment • Writing an ESMF Application • Adapting a Model Code to ESMF • Introduction to the National Unified Operational Prediction Capability (NUOPC) Layer

  27. Working with the Eclipse Community • The Eclipse development community is very active with yearly major releases plus two additional service releases per year • Plug-in architecture: • Parallel Tools Platform (MPI, OpenMP, OpenACC, batch queue submission, parallel debugger, remote tools) • Photran (Fortran language development) • Open to collaboration and responsive! • We submitted a patch that adds preprocessor support for Fixed Form Fortran files • Through support request, PTP developer added remote proxy capability for accessing machines through a secure gateway

More Related