Interim Review
Download
1 / 24

Interim Review Cupid: An IDE for Model Development and Modeler Training - PowerPoint PPT Presentation


  • 68 Views
  • Uploaded on

Interim Review Cupid: An IDE for Model Development and Modeler Training. Cecelia DeLuca 1 , Rocky Dunlap 2 , Spencer Rugaber 2 1 NOAA ESRL/University of Colorado 2 Georgia Institute of Technology April 15, 2014. https://earthsystemcog.org/projects/cupid/. Outline. ESMF and the NUOPC Layer

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Interim Review Cupid: An IDE for Model Development and Modeler Training' - dong


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Interim Review

Cupid: An IDE for Model Development and Modeler Training

Cecelia DeLuca1, Rocky Dunlap2, Spencer Rugaber2

1NOAA ESRL/University of Colorado

2Georgia Institute of Technology

April 15, 2014

https://earthsystemcog.org/projects/cupid/


Outline

  • ESMF and the NUOPC Layer

  • The Earth System Prediction Suite (ESPS)

  • NASA Modeling and ESPS

  • NUOPC Layer in Model E

  • Cupid IDE

  • Cupid Demo


The Earth System Modeling Framework

The Earth System Modeling Framework (ESMF) was developed as a multi-agency response to calls for common modeling infrastructure.

ESMF delivered:

  • Standard interfaces for model components

  • High performance libraries and tools for time management, data communications, metadata and I/O, and parallel grid remapping

Metrics:

~5500 downloads

~3000 individuals on info mailing list

~40 platform/compilers regression tested

~6400 regression tests

http://www.earthsystemmodeling.org


New Directions

The initial ESMF software fell short of the vision for common infrastructure in several ways:

  • Implementations of ESMF could vary widely and did not guarantee a minimum level of technical interoperability among sites

  • It was difficult to track who was using ESMF and how they were using it

  • There was a significant learning curve for implementing ESMF in a modeling code

  • New development directions address these gaps.


The National Unified OperationalPrediction Capability

  • 1. Implementations of ESMF could vary widely and did not guarantee a minimum level of technical interoperability among sites

  • The National Unified Operational Prediction Capability (NUOPC) is a consortium of operational weather prediction centers and their research partners

  • NUOPC developed the NUOPC Layer software to increase interoperability of ESMF components

  • The NUOPC Layer adds to ESMF:

    • A formalism that describes and splits the phases of initialization

    • A formalism for checking and reporting whether component requirements are satisfied during the run sequence

    • Code templates for drivers, models, mediators (couplers) and connectors, and example application showing a variety of model interactions (e.g. explicit, semi-implicit, implicit coupling)

    • Compliance checkers


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.

    ESPS on CoG:

    https://www.earthsystemcog.org/projects/esps


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)

  • The NOAA Environmental Modeling System (NEMS) and Climate Forecast System version 3 (CFSv3)

  • The MOM5 and HYCOM oceans

  • 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


ESMF/NUOPC Layer in Model E

The ESMF team has been working with GISS developers and GSFC staff to implement NUOPC interfaces in Model E

  • Current status:

  • Model E can be driven by a NUOPC driver.

  • Ocean, atmosphere and “other” components are wrapped in NUOPC interfaces

  • The system validates bfb for a simple active atmosphere configuration (EM20), test report here:http://www.earthsystemcog.org/projects/cupid/testreport_0106

  • The overall status for this activity is tracked here:https://www.earthsystemcog.org/projects/cupid/modeleplans


ESPS Code Status

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


ESPS and Cupid

ESPS creates opportunities for the Cupid team:

  • There is an opportunity for the GEOS-5 and Model E codes to become more interoperable with other codes in the community, and each other.

    • The NUOPC Layer and the Modeling Analysis and Prediction Layer (MAPL) that GEOS-5 uses are similarly structured and share use of ESMF as an underlayer. A report details the relationship between the two software packages, here: http://www.earthsystemcog.org/site_media/projects/nuopc/paper_1401_nuopc_mapl.docx

    • The ESMF and GMAO teams plan to incorporate MAPL into the ESMF distribution, in much the same way that NUOPC is bundled with ESMF.

    • This will create opportunities for reducing redundancy and further merging the NUOPC Layer and MAPL packages.

    • A translator will be written to convert between the interfaces.

  • There is an opportunity for training users across ESPS modeling systems.


Cupid Development andTraining Environment

  • 3. There was a significant learning curve for implementing ESMF in a modeling code

    CUPID GOAL: Make ESMF training and development simpler and more appealing

  • NOAA CIRES, GA Tech, and NASA GISS/GSFC collaboration

  • Eclipse-based “Integrated Development Environment” or IDE

  • Customized for ESMF applications with NUOPC conventions

    Cupid is a working prototype expected to be ready for first public release in FY14.

    Cupid project: https://earthsystemcog.org/projects/cupid/

    Cupid tutorial:https://github.com/cupid-ide/cupid/blob/master/org.earthsystemcurator.cupid.nuopc.fsml/doc/latex/cupid.pdf?raw=true


Cupid Development andTraining Environment

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)

Source code editor

NUOPC outline

Project

explorer

Console for viewing output


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 (untested)

  • Scenario selection:

  • Populates the Project Explorer

  • Determines software prerequisites


Smart, Framework-aware

Code Editing Environment

Central idea: A framework-aware editor provides contextual guidance as code is being writtenby checking for compliance to framework rules and automatically generating and inserting code fragments into existing code

Reverse engineer

Generate code


Smart, Framework-aware

Code Editing Environment

  • NUOPC View

  • compact outline of NUOPC component source code

  • linked with source code editor

  • contextual reference documentation

  • compliance issues shown in red

  • new elements can be added to outline, simultaneously generating code in the editor


Behind the Scenes:

Smart, Framework-aware

Code Editing Environment


Running Code in Cupid: Local or

Cloud-based Job Submission

  • Eclipse projects can be configured to run on a personal or cloud-based computing system.

  • What advantages does cloud-based computing offer for an IDE?

  • Configuration of a computational environment for compiling and running models requires expert knowledge, and

  • Configuration of an IDE for a particular computing system (e.g., NASA/Discover) introduces complexity


Cloud-based Training Environment

Central idea: Integrate cloud computing with the IDE so trainees get quickly to important learning objectives

New Cupid Training Project Wizard spins up Amazon EC2 instances

  • Advantages:

  • trainee not required to configure computational environment

  • on-demand training in low-risk sandboxes

  • pre-configured scenarios highlight important ESMF/NUOPC concepts


Behind the Scenes:

Cloud-based Training Environment

  • NESII Amazon Elastic Compute Cloud (EC2) account:

  • preconfigured machine images – NUOPC and ModelE (EM20 rundeck)

  • can request access to NESII cloud account, or

  • can provide your own EC2 account credentials

  • XML-based training scenario configuration:


Thanks
Thanks!

https://earthsystemcog.org/projects/cupid/



Behind the Scenes:

Smart, Framework-aware

Code Editing Environment

Mapping Types


Behind the Scenes:

Smart, Framework-aware

Code Editing Environment

Mapping Types (cont.)


Behind the Scenes:

Smart, Framework-aware

Code Editing Environment

NUOPC Driver

module(#driverName)

driverName

usesModule(ESMF)

standardESMFImport

usesModule(NUOPC)

standardNUOPCImport

usesModule(NUOPC_Driver)

genericImports

importsGenericSS

usesEntity(routine_SetServices)

subroutine(*(inout type(ESMF_GridComp) #p_gcomp, out integer #p_rc) )

implementsSetServices

...

callsGenericSetServices

call(#^genericImports/importsGenericSS

(#^p_gcomp, #^p_rc))


ad