270 likes | 359 Views
Climate. Data Assimilation. Weather. Earth System Modeling Framework (ESMF) Community Meeting, 2006. DOD. NSF. DOE. NASA. NOAA. Today’s Agenda. A reception from 5:30pm to 7:30pm in the same room as the Community Meeting, Chesapeake I and II.
E N D
Climate Data Assimilation Weather Earth System Modeling Framework (ESMF) Community Meeting, 2006. DOD NSF DOE NASA NOAA
Today’s Agenda A reception from 5:30pm to 7:30pm in the same room as the Community Meeting, Chesapeake I and II. Tomorrow (May 24) 8.30-12.30. Sheraton Inner Harbor Room - Loch Raven 1
Climate Data Assimilation Weather Earth System Modeling Framework (ESMF): Introduction to ESMF and ESMF Components in the Community. ESMF Community Meeting, Baltimore, 2006 DOD NSF DOE NASA NOAA
Outline • What is ESMF? • ESMF components. • Where is ESMF being used? • Components in production or being developed. • What does it take to use ESMF? • Future directions
What is ESMF • ESMF provides a software library for turning model codes into coupled componentswith standard interfaces and standard drivers. • ESMF provides library of common infrastructure that components use for routine services such as data communications, regridding, time management and message logging. e.g ocean transport, optimization line search, atmospheric radiation. ESMF Superstructure AppDriver Component Classes: GridComp, CplComp, State User Provided Numerical/Science Code E SMF Infrastructure Data Classes: Bundle, Field, Grid, Array Utility Classes: Clock, LogErr, DELayout, Machine • e.g. three model codes operating as coupled components – ESMF provides a parallel, scalable standard software platform to facilitate this coupling, including • a programming model for coding drivers that steer individual component computations • data structures for passing information between components • This software is the core of the ESMF component model. Component 1 Component 2 Component 3
ESMF ComponentModel • Provides machinery for coding a hierarchy of interacting components • coupler components, e.g. ocm2atm_coupler and • gridded components, e.g. atm_phys_comp • Machinery includes • general-purpose mechanisms to code “wirings” between components (ESMF_State, ESMF_regrid()) • general purpose mechanisms to create components and to control their lifecycle (SetServices, Init(), Run(), Final() …) • Graph of hypothetical ESMF app. in left panel. • Numbers correspond hypothetical app. user code 1 climate_comp 1 2 atm2ocn_coupler 3 ocn_comp atm_comp 4 phys2dyn_coupler 5 _comp 4 3 gridded components 2 _coupler coupler components atm_phys_comp 6 7 atm_dyn_comp 6 5 7 Components are nodes . Flow of data between components is shown by edges. Hypothetical application on parallel machine
Example – ESMF component graph for GEOS-5† AGCM GEOS-5 coupler agcm history coupler dynamics physics coupler coupler gravity_wave_drag fvcore surface chemistry moist_processes radiation turbulence coupler coupler lake land_ice data_ocean land infrared solar coupler Max Suarez, Atanas Tryanov vegetation catchment • Boxes are user written ESMF components • Every component has a standard ESMF interface Init(),Run(), Finalize(). These drive the components. • Data in and out of components are packaged in ESMF_state types • New components can be added to the hierarchical system • Coupling tools include parallel regridding and redistribution methods †GEOS-5 presentation later
Creating and controlling ESMF Components dyn_init(dGC,dI,dE,cl,rc) : ESMF_CCInit(dyn2fv,dI,dE,cl,rc) ESMF_GCInit(fvGC,fvI,fvE,cl,rc) ESMF_CCInit(fv2dyn,dI,dE,cl,rc) : Initialize dyn_run(dGC,dI,dE,cl,rc) : ESMF_CCRun(dyn2fv,dI,fvI,cl,rc) ESMF_GCRun(fvGC,fvI,fvE,cl,rc) ESMF_CCRun(fv2dyn,fvE,dE,cl,rc) : Run ESMF component model defines standard interfaces that a component must provide Key ones Initialize(IState,EState,Clock,RC) Run(IState,EState,…) Finalize(IState,EState,…) ESMF component model defines a standard “container” type for passing information between components e.g TYPE(ESMF_State) :: fvI, fvE, dI, dE Components exchange data (with their peers and parent in the graph) by encoding/decoding ESMF_Statedata type arguments. An ESMF_statecan hold many sorts of information and includes meta-data needed to decode it.
Data is transferred between components through ESMF_State type “container variables”. • Functions such as ESMF_regrid/ESMF_redist are used in coupler components to succinctly remap data within components. • Every component registers ESMF_Init(), ESMF_Run(), ESMF_Finalize() so that it can be controlled from a parent. • Components may also use an internal state pointer to maintain private state between calls. • The component model provides everyone with a common model of time and alarms at the component interface. ESMF Component Modeling. These aspects of the ESMF component model are being used both to develop interoperable applications and to develop new applications.
Outline • What is ESMF? • ESMF components. • Where is ESMF being used? • Components in production or being developed. • What does it take to use ESMF? • Future directions/challenges
Components in production or in test and development ~37 different components, span research to production
Using ESMF: CCSM example Erik Kluzek, Mariana Vertenstein Group looking for way to provide a single-executable system like the NCAR Community Atmosphere Model (CAM) (left) but that has coupling flexibility of CCSM. For this CCSM is prototyping ESMF as a way to separate out ice and ocean from under a CAM specific driver (right).
Using ESMF: BEI† example Part of BEI project targeting coupled HYCOM (Hybrid Coordinate Ocean Model) – CICE (Los Alamos Sea Ice Model) system for more accurate polar modeling. Using ESMF to wire CICE and HYCOM together. BEI† presentation later Alan Wallcroft
Using ESMF: LIS example LIS team looking for strategy to integrate land-surface and atmospheric dynamics modeling and assimilation. Using ESMF to wire LIS and GMAO atmospheric modules together. Sujay Kumar, Christa Peters-Liddard
Using ESMF: SWMF example SWMF exploring approach to coupling space weather to Earth atmosphere. Using ESMF to provide SWMF as an encapsulated ESMF component. Quentin Stout
ESMF in the community – examples of strategies Complete framework component Whole model components Fine grain components ESMF gridded and coupler components are user written, so ESMF can be used flexibly at different levels of abstraction and with mixed coupling paradigms. Hub-and-spoke coupling One-to-one coupling
Outline • What is ESMF? • ESMF components. • Where is ESMF being used? • Components in production or being developed. • What does it take to use ESMF? • Future directions/challenges
Using ESMF - why? • The emerging pool of other ESMF-based science components. Can be used to create applications. • To reduce the amount of infrastructure code that you need to maintain and write, and allow you to focus more resources on science development. • ESMF is addressing two major technical problems in model development: Structuring large, multi-component applications so that they are easier to use and extend, and achieving performance portability on a wide variety of parallel architectures. • It may be better software (better features, better performance portability, better tested, better documented, more stable maintenance) than the infrastructure software that you are currently using. • Community development and use means that the ESMF software is widely reviewed and tested, and that you can leverage contributions from other groups.
Using ESMF - how? • More in later talks and, especially, at tomorrows tutorial • Basic steps to get started • Download (from http://www.esmf.ucar.edu ) and build • Read manual (not all of it!) • Try a few of the examples • Decide on scope of your components e.g. is your code one monolithic component or several sub-components. • Arrange the code internally into init(), run(), finalize() sections. • Attach ESMF_Init() etc… to your internal init() • Develop couplers to map between sub-components, if needed. • Q’s to esmf-support@ucar.edu • More advanced steps • Develop internal state for your component that can be attached to component. • Refactor infrastructure to use ESMF basis
Future directions and challenges Having a standard interface doesn’t guarantee meaningful results! Conventions, rules, best-practices and higher-level protocols are required to describe, precisely and unambiguously (to a machine), what inputs a component expects and what it can export, what rules it must adhere to etc… Some of this can be automated (Curator presentation and discussion session later). Some requires expert knowledge.
Summary The basis of ESMF is a component paradigm tailored to Earth and planetary science disciplines. The component paradigm in ESMF centers on components written in a user community. The ESMF community has a growing pool of components upcoming presentations from Mark Iredell (NCEP), Max Suarez (GSFC), Alan Wallcraft (DOD), but room for lots more! The granularity of available components spans sub-process models to complete frameworks, and covers algorithm areas from assimilation algebra to cloud processes. Some emerging standard rules (see later presentations)
The Earth System Modeling Framework (ESMF) is a software package for building scalable, portable, modular modeling and data assimilation applications. …. ESMF promotes an organized, hierarchical application architecture that makes complex applications easier to maintain and extend, and allows individual components of an application to be exchanged and used in multiple contexts. What is ESMF • ESMF provides tools for turning model codes into componentswith standard interfaces and standard drivers. • ESMF provides library of common utilities that components use for routine services such as data communications, regridding, time management and message logging. e.g ocean transport, optimization line search, atmospheric radiation. ESMF Superstructure AppDriver Component Classes: GridComp, CplComp, State User Provided Numerical/Science Code E SMF Infrastructure Data Classes: Bundle, Field, Grid, Array Utility Classes: Clock, LogErr, DELayout, Machine