The Joint Effort for Data assimilation Integration JEDI

  • Slides: 25
Download presentation
The Joint Effort for Data assimilation Integration (JEDI) as a Framework for Interdisciplinary Application

The Joint Effort for Data assimilation Integration (JEDI) as a Framework for Interdisciplinary Application Joint Center for Satellite Data Assimilation (JCSDA) Architects: Yannick Trémolet, Thomas Auligne Presenter: Guillaume Vernieres

Joint Center for Satellite Data Assimilation A multi-agency research center created to improve the

Joint Center for Satellite Data Assimilation A multi-agency research center created to improve the use of satellite data for analyzing and predicting the weather, the ocean, the climate and the environment. Collaborative organization funded by: - NOAA/NWS - NOAA/NESDIS - NOAA/OAR - NASA/GMAO - US Navy - US Air Force Organized by projects: - CRTM (Community Radiative Transfer Model) - JEDI (Joint Effort for Data assimilation Integration) - SOCA (Sea-ice Ocean Coupled Assimilation) - NIO (New and Improved Observations) - IOS (Impact of Observing Systems)

JEDI: Motivations and Objectives The Joint Effort for Data assimilation Integration (JEDI) is a

JEDI: Motivations and Objectives The Joint Effort for Data assimilation Integration (JEDI) is a collaborative development between JCSDA partners. Develop a unified data assimilation system for interdisciplinary applications: - From toy models to Earth system coupled models - Unified observation (forward) operators (UFO) - For research and operations (including R 2 O/O 2 R) - Share as much as possible without imposing one approach

Abstract Design: separation of concerns Abstract Layer - OOPS Generic Applications Forecast 4 D-Var

Abstract Design: separation of concerns Abstract Layer - OOPS Generic Applications Forecast 4 D-Var En. KF PF … Uses Abstract building blocks State Model Covariance Observations Implements Systems Lorenz “Toy” model Wave. Watch-III Wave MOM 6 CICE 5 Ocean Sea-ice FV 3 … Atmosphere Abstract interfaces are the most important aspect of the design

Joint Effort for Data assimilation Integration Model Space Observation Space Infrastructure and working practices

Joint Effort for Data assimilation Integration Model Space Observation Space Infrastructure and working practices

Abstract Design: separation of concerns OOPS: Object Oriented Prediction System UFO: Unified Forward Operator

Abstract Design: separation of concerns OOPS: Object Oriented Prediction System UFO: Unified Forward Operator IODA: Interface for Observation Data Access BUMP: Background errors with an Unstructured Mesh Package

Model Design: Post-processors • A post-processor can be anything that - Is called (regularly)

Model Design: Post-processors • A post-processor can be anything that - Is called (regularly) during model integration - Does not modify the State • Between model “steps” OOPS calls post-processors - OOPS manages when post-processing should be called - Post-processing moved away from model code (separation of concerns) - Adding a post-processor is just adding it to a list • OOPS relies on post-processors for isolating data assimilation from the model (separation of concerns) - Computing simulated observations H(x) - Jc-DFI, …

Model Interfaces to JEDI: Status

Model Interfaces to JEDI: Status

Joint Effort for Data assimilation Integration Model Space Observation Space Infrastructure and working practices

Joint Effort for Data assimilation Integration Model Space Observation Space Infrastructure and working practices

Observation Space Objectives • Share observation operators between JCSDA partners and reduce duplication -

Observation Space Objectives • Share observation operators between JCSDA partners and reduce duplication - Include instruments science teams • Faster use of new observing platforms - Regular satellite missions are expensive Cube-sat have short expected life time • Unified Forward Operator (UFO) - Build a community app-store of observation operators (“op-store”)

Observation Operators State Obs. Operators Observations • In most existing systems, observation operators directly

Observation Operators State Obs. Operators Observations • In most existing systems, observation operators directly access state/model data • Observation operators, and as a result DA systems, are very model specific

UFO: the interface advantage Obs. Locations Variables Obs. Operators State Observations Field Values at

UFO: the interface advantage Obs. Locations Variables Obs. Operators State Observations Field Values at Locations • JEDI/UFO introduces standard interfaces between the model and observation worlds • Observation operators are independent of the model and can easily be shared, exchanged, compared

UFO Observation “filters” • JEDI/UFO calls abstract “observation filters” before and after the actual

UFO Observation “filters” • JEDI/UFO calls abstract “observation filters” before and after the actual observation operator • Filters can be written once and used with many observation types • Observation filters are generic and have access to - Observation values and metadata - Simulated observation value (post-filter) - Their own private data • Examples: - Quality control (background check, buddy check, cloud detection…) - Thinning - Saving linearization trajectory or Jacobians

Multidisciplinary UFO: Status Nonlinear Tangent Linear Adjoint Radiance Done Aircraft Done GNSSRO Done In

Multidisciplinary UFO: Status Nonlinear Tangent Linear Adjoint Radiance Done Aircraft Done GNSSRO Done In progress Radio sonde Done Aerosol Optical Depth Done In progress Done Done Salinity Done In progress Sea Surface Temperature Done In progress Not started Done In progress Sea-ice Fraction “ Thickness Done Sea Surface Height Insitu Temperature Diurnal SST Significant Wave Height Done Atmosphere: FV 3, MPAS, LFRIC, . . . Aerosol Sea-ice: SIS 2/CICE 5 Ocean: MOM 6 Wave: Wave. Watch III

Interface for Observation Data Access (IODA) Interface to isolate science code from data storage

Interface for Observation Data Access (IODA) Interface to isolate science code from data storage Three levels: - Long term storage (historic database) - Files on disk (one DA cycle) - In memory handling of observations (hardware specific? ) Two environments: - Plotting, analyzing, verifying on workstation - DA and other HPC applications (MPI, threads, GPUs…) Goal: one interface, possibly several implementations?

Joint Effort for Data assimilation Integration Model Space Observation Space Infrastructure and working practices

Joint Effort for Data assimilation Integration Model Space Observation Space Infrastructure and working practices

Code and repositories FV 3 GFS GEOS CRTM MOM 6 OOPS MPAS UFO IODA

Code and repositories FV 3 GFS GEOS CRTM MOM 6 OOPS MPAS UFO IODA LFRic eckit NEPTUNE Observation and Model Spaces are independent

Code and repositories Example of the development of multidisciplinary/multi agency software project (IODA/UFO/OOPS/SOCA/FV 3)

Code and repositories Example of the development of multidisciplinary/multi agency software project (IODA/UFO/OOPS/SOCA/FV 3) FV 3 UFO (Unified Forward Operators) OOPS (Object Oriented Prediction System MOM 6/SIS 2 (Ocean and Sea-ice) IODA (Interface for Observation Data Access

Code and repositories Example of the development of multidisciplinary/multi agency software project (IODA/UFO/OOPS/SOCA/FV 3)

Code and repositories Example of the development of multidisciplinary/multi agency software project (IODA/UFO/OOPS/SOCA/FV 3)

Governance and code reviews Governance is about management keeping in control and deciding what

Governance and code reviews Governance is about management keeping in control and deciding what features should be in the system Code reviews are about quality of the code Two different levels of control - Good code can stay outside of central repository (stability of interfaces is important) - A desired feature that does not satisfy quality requirements cannot be accepted as is Testing is a pre-requirement for code reviewing Different people and different pace: Separation of concerns…

Infrastructure, working practices • Project methodology inspired by Agile/SCRUM – Adapted to distributed teams

Infrastructure, working practices • Project methodology inspired by Agile/SCRUM – Adapted to distributed teams and part time members • Collaborative environment - Easy access to up-to-date source code (github) - Easy exchange of information (Confluence, zenhub) • Flexible build system (ecbuild-based) • Coding norms • Documentation, tutorials, JEDI Academy

Infrastructure, working practices • Continuous Integration, Testing framework - Toolbox for writing tests -

Infrastructure, working practices • Continuous Integration, Testing framework - Toolbox for writing tests - Automated running of tests (on push to repositories) • Effort on portability - Automatically run tests with several compilers - JEDI available in containers (Docker, singularity) • Enforce software quality (correctness, coding norms, efficiency) • Change in working practices take time…

Code Sprints • Gather 8 -10 people in a room for 2 weeks –

Code Sprints • Gather 8 -10 people in a room for 2 weeks – NICAS B Matrix (Aug 2017) – Observation Operators (Nov. 2017) – Marine UFO (Feb. 2018) – B matrix reloaded (Aug. 2018) – GNSSRO (Aug. 2018) • Efficient use of time, especially for part time contributors • Involve people from all partner institutions in project • Very motivating (before, during, after) 23

Preliminary Results Engineering results only! 3 DEn. VAR MPAS Coupled 3 DVAR Ocean/Sea-ice (MOM

Preliminary Results Engineering results only! 3 DEn. VAR MPAS Coupled 3 DVAR Ocean/Sea-ice (MOM 6 SIS 2) 4 DVAR FV 3 -GEOS 24

Thanks to all involved in JEDI (2018) Amal El Akkraoui, Anna Shlyaeva, Ben Johnson,

Thanks to all involved in JEDI (2018) Amal El Akkraoui, Anna Shlyaeva, Ben Johnson, Ben Ruston, Benjamin Ménétrier, BJ Jung, Bob Oehmke, Bryan Flynt, Bryan Karpowicz, Clara Draper, Dan Holdaway, Dom Heinzeller, Innocent Souopgui, François Vandenberghe, Gael Descombes, Guillaume Vernières, Hui Shao, Jeff Whitaker, Jili Dong, Jing Guo, John Michalakes, Julie Schramm, Lidia Cucurull, Mariusz Pagowski, Mark Miesch, Mark Potts, Ming Hu, Rahul Mahajan, Ricardo Todling, Santha Akella, Scott Gregory, Soyoung Ha, Steve Herbener, Steve Penny, Steve Sandbach, Stylianos Flampouri, Tom Auligné, Travis Sluka, Will Mc. Carty, Xin Zhang, Yannick Trémolet.