270 likes | 291 Views
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.
E N D
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
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…
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
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/
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
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/
ESPS Code Status Spanning major climate, weather, and ocean codes, ESPS is the most directresponse to calls for common modeling infrastructure yet assembled
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
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
Understand what’s there: Reverse Engineer an ESMF/NUOPC Application
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
Write compliant code: In-place Code Generation
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)
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
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
Cupid is funded by the NASA Computational Modeling Algorithms and Cyberinfrastructure (CMAC) program • Collaborators: • NOAA/CIRES • Georgia Tech • NASA GISS/GSFC collaboration
Thanks! https://earthsystemcog.org/projects/cupid/
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
Automated Code Analyses to Reduce Code Complexity You Source code Query Response
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
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)
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
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