nsf ncar / nasa gsfc / doe lanl anl / noaa ncep gfdl / mit / u mich may 14, 2003 nancy collins, ncar...
TRANSCRIPT
May 14, 2003
NSF NCAR / NASA GSFC / DOE LANL ANL / NOAA NCEP GFDL / MIT / U MICH
Nancy Collins, NCAR
Components Workshop, Princeton, NJ
Components in the Earth System Modeling Framework
NSIPP Seasonal ForecastNCAR/LANL CCSM
NCEP Forecast
GFDL FMS SuiteMITgcm
NASA GSFC PSAS
May 14, 2003
NSF NCAR / NASA GSFC / DOE LANL ANL / NOAA NCEP GFDL / MIT / U MICH
Outline
• ESMF Component Design Principles• ESMF Component User Environments• ESMF Component Details
May 14, 2003
NSF NCAR / NASA GSFC / DOE LANL ANL / NOAA NCEP GFDL / MIT / U MICH
ESMF Project Overview
GOAL: To increase software reuse, interoperability, ease of use and performance portability in climate, weather, and data assimilation applications
PRODUCTS: • Coupling superstructure and utility infrastructure software • Synthetic code suite for validation and demonstration• Set of 15 ESMF-compliant applications (including CCSM, WRF, GFDL models;
MIT, NCEP and NASA data assimilation systems)• Set of 8 interoperability experiments
RESOURCES: $10.1M over 3 years from NASA Earth Science Technology Office
May 14, 2003
NSF NCAR / NASA GSFC / DOE LANL ANL / NOAA NCEP GFDL / MIT / U MICH
ESMF Class Structure
MachineModel
Layout
DistGridPhysGrid
State
Bundle
GriddedComponent
Array
Utilities: TimeMgr, Config, LogErr, I/O etc.
F90
Superstructure
Infrastructure
Field
Grid
Regrid
Comm
Data Communications
Route
CouplerComponent
C++
ApplicationComponent
May 14, 2003
NSF NCAR / NASA GSFC / DOE LANL ANL / NOAA NCEP GFDL / MIT / U MICH
Design Principles:Scalable ApplicationsSince each ESMF application is also a component, entire ESMF applications may be treated as Gridded Components and nested within larger applications.
climate_comp
ocn_comp atm_comp
ocn2atm_coupler
atm_phys
phys2dyn_coupler
atm_dynPE
Example: atmospheric application containing multiplecoupled components within a larger climate application
May 14, 2003
NSF NCAR / NASA GSFC / DOE LANL ANL / NOAA NCEP GFDL / MIT / U MICH
Design Principles:Local CommunicationAll inter-component communication within ESMF is local.
climate_comp
ocn_comp atm_comp
atm_phys
phys2dyn_coupler
atm_dynPE
atm2ocn _coupler
This means:
Coupler Components must be defined on the union of the PEs of all the components that they couple.
In this example, in order to send data from the ocean component to the atmosphere, the Coupler mediates the send.
May 14, 2003
NSF NCAR / NASA GSFC / DOE LANL ANL / NOAA NCEP GFDL / MIT / U MICH
Design Principles:Import/Export StatesGridded Components do not have access to the internals of other Gridded Components. They have 2 options for exchanging data with other Components; the first is to receive Import and Export States as arguments.
coupler
ocn_componentsubroutine ocn_run(comp, &
ImportState,ExportState, Clock, rc)
atm_componentsubroutine atm_run(comp, &
ImportState,ExportState, Clock, rc)
States contain flags for “is required”, “isvalid”, “is ready”, etc.
May 14, 2003
NSF NCAR / NASA GSFC / DOE LANL ANL / NOAA NCEP GFDL / MIT / U MICH
Design Principles:Transforms and StatesGridded Components using Transforms do not have to return control to a higher level component to send or receive State data from another component. They can receive function pointers which are methods that can be called on the states.
coupler
ocn_componentcall ESMF_StateXform(ex_state, &
xform)
atm_componentcall ESMF_StateXform(xform, &
im_state)
transformcall ESMF_CompRun(atm, xform)call ESMF_CompRun(ocn, xform)
May 14, 2003
NSF NCAR / NASA GSFC / DOE LANL ANL / NOAA NCEP GFDL / MIT / U MICH
Design Principles:Registration ProcessComponents must provide a single externally visible entry point which will register the other entry points with the Framework. Components can:
- Register one or more Initialization, Run, Finalize, and Checkpoint entry points.
- Register a private data block which can contain all data associated with this instantiation of the Component; particularly useful when running ensembles.
Higher level Comp
cmp_register() cmp_run() cmp_final()cmp_init()
ESMF Framework Services
Public subroutinePrivate subroutine
May 14, 2003
NSF NCAR / NASA GSFC / DOE LANL ANL / NOAA NCEP GFDL / MIT / U MICH
ESMF User Environments
•Languages: F90 (predominately), C++•Systems: Unix/Linux variants (inc IBM, SGI, Compaq, Linux clusters, Mac OS X)•Memory: MPI, PThreads/SMP•Execution: Sequential and Concurrent•Runtime system: LoadLeveler, poe, bsub, mpirun
May 14, 2003
NSF NCAR / NASA GSFC / DOE LANL ANL / NOAA NCEP GFDL / MIT / U MICH
Component Details
• Components create others• Nested parent/child relationship• Annotated States contain all data passed
between components• Data objects use CF name conventions• Can be created dynamically • Initialization/Run/Finalize/Checkpoint