CCSM cpl6 Design and Interfaces Tony Craig Brian Kauffman Tom Bettge National Center for Atmospheric Researc Robert Jacob Jay Larson Everest Ong Argonne.

Slides:



Advertisements
Similar presentations
Threads, SMP, and Microkernels
Advertisements

MPI Message Passing Interface
Class CS 775/875, Spring 2011 Amit H. Kumar, OCCS Old Dominion University.
Thoughts on Shared Caches Jeff Odom University of Maryland.
Linkage Editors Difference between a linkage editor and a linking loader: Linking loader performs all linking and relocation operations, including automatic.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Computational Methods of Scientific Programming Lecturers Thomas A Herring, Room A, Chris Hill, Room ,
Nov. 2002NERSC/LBNL1 Climate Modeling: Coupling Component Models by MPH for Distributed Multi-Component Environment Chris Ding and Yun (Helen) He NERSC.
Software Group © 2006 IBM Corporation Compiler Technology Task, thread and processor — OpenMP 3.0 and beyond Guansong Zhang, IBM Toronto Lab.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
1 New Architectures Need New Languages A triumph of optimism over experience! Ian Watson 3 rd July 2009.
Coupling ROMS and WRF using MCT
1 I/O Management in Representative Operating Systems.
C++ fundamentals.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Task Farming on HPCx David Henty HPCx Applications Support
Lecture 29 Fall 2006 Lecture 29: Parallel Programming Overview.
Components and Concurrency in ESMF Nancy Collins Community Meeting July 21, GMAO Seasonal.
Metadata Creation with the Earth System Modeling Framework Ryan O’Kuinghttons – NESII/CIRES/NOAA Kathy Saint – NESII/CSG July 22, 2014.
LOGO OPERATING SYSTEM Dalia AL-Dabbagh
Operating System Review September 10, 2012Introduction to Computer Security ©2004 Matt Bishop Slide #1-1.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Names Variables Type Checking Strong Typing Type Compatibility 1.
CESM/RACM/RASM Update May 15, Since Nov, 2011 ccsm4_0_racm28:racm29:racm30 – vic parallelization – vic netcdf files – vic coupling mods and “273.15”
Computational Design of the CCSM Next Generation Coupler Tom Bettge Tony Craig Brian Kauffman National Center for Atmospheric Research Boulder, Colorado.
Initial Results from the Integration of Earth and Space Frameworks Cecelia DeLuca/NCAR, Alan Sussman/University of Maryland, Gabor Toth/University of Michigan.
Chapter 3 Parallel Algorithm Design. Outline Task/channel model Task/channel model Algorithm design methodology Algorithm design methodology Case studies.
Cisco S2 C4 Router Components. Configure a Router You can configure a router from –from the console terminal (a computer connected to the router –through.
1 CW 2015, Manchester, 04/ Coupling technology benchmarking in IS-ENES2 Coupling technology benchmarking in IS-ENES2 IS-ENES2 WP10-T3 Evaluation.
Overview of ESMF in the Community Climate System Model (CCSM) Erik Kluzek NCAR -- CCSM Software Engineering Group (CSEG) Erik Kluzek NCAR -- CCSM Software.
The use of modeling frameworks to facilitate interoperability Cecelia DeLuca/NCAR (ESMF) Bill Putman/NASA GSFC (MAPL) David Neckels/NCAR.
February 2012 Milestone Materials Implicit coupling design document NUOPC Layer software prototype bundled with ESMF Updated NUOPC Layer reference manual.
CESM/ESMF Progress Report Mariana Vertenstein NCAR Earth System Laboratory CESM Software Engineering Group (CSEG) NCAR is sponsored by the National Science.
NIH Resource for Biomolecular Modeling and Bioinformatics Beckman Institute, UIUC NAMD Development Goals L.V. (Sanjay) Kale Professor.
Regional Models in CCSM CCSM/POP/ROMS: Regional Nesting and Coupling Jon Wolfe (CSEG) Mariana Vertenstein (CSEG) Don Stark (ESMF)
High performance parallel computing of climate models towards the Earth Simulator --- computing science activities at CRIEPI --- Yoshikatsu Yoshida and.
1 OASIS3-MCT_3.0 OASIS overview OASIS3-MCT_3.0 Some recent performance results Summary and future efforts A. Craig, S. Valcke, L. Coquart, CERFACS April.
Office of Research and Development Atmospheric Modeling Division, National Exposure Research Laboratory WRF-CMAQ 2-way coupled system: Part I David Wong,
Lecture 4 TTH 03:30AM-04:45PM Dr. Jianjun Hu CSCE569 Parallel Computing University of South Carolina Department of.
Earth System Modeling Framework Python Interface (ESMP) October 2011 Ryan O’Kuinghttons Robert Oehmke Cecelia DeLuca.
CCSM Portability and Performance, Software Engineering Challenges, and Future Targets Tony Craig National Center for Atmospheric Research Boulder, Colorado,
SC03, Nov 2003Y.He1 MPH: a Library for Coupling Climate Component Models on Distributed Memory Architectures Chris Ding and Yun (Helen) He
Lecture 5 Page 1 CS 111 Online Processes CS 111 On-Line MS Program Operating Systems Peter Reiher.
CS 484 Designing Parallel Algorithms Designing a parallel algorithm is not easy. There is no recipe or magical ingredient Except creativity We can benefit.
CCA Common Component Architecture CCA Forum Tutorial Working Group CCA Status and Plans.
NCEP ESMF GFS Global Spectral Forecast Model Weiyu Yang, Mike Young and Joe Sela ESMF Community Meeting MIT, Cambridge, MA July 21, 2005.
Coupling protocols – software strategy Question 1. Is it useful to create a coupling standard? YES, but … Question 2. Is the best approach to make a single.
CCSM Performance, Successes and Challenges Tony Craig NCAR RIST Meeting March 12-14, 2002 Boulder, Colorado, USA.
Parallel Data Transfer in the Model Coupling Toolkit Robert L. Jacob J. Walter Larson Mathematics and Computer Science Division Argonne National Laboratory.
On the Road to a Sequential CCSM Robert Jacob, Argonne National Laboratory Including work by: Mariana Vertenstein (NCAR), Ray Loy (ANL), Tony Craig (NCAR)
Parallelization Strategies Laxmikant Kale. Overview OpenMP Strategies Need for adaptive strategies –Object migration based dynamic load balancing –Minimal.
Chapter 11: Advanced Inheritance Concepts. Objectives Create and use abstract classes Use dynamic method binding Create arrays of subclass objects Use.
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
1 Rocket Science using Charm++ at CSAR Orion Sky Lawlor 2003/10/21.
Slide 1 NEMOVAR-LEFE Workshop 22/ Slide 1 Current status of NEMOVAR Kristian Mogensen.
C OMPUTATIONAL R ESEARCH D IVISION 1 Defining Software Requirements for Scientific Computing Phillip Colella Applied Numerical Algorithms Group Lawrence.
High Performance Flexible DSP Infrastructure Based on MPI and VSIPL 7th Annual Workshop on High Performance Embedded Computing MIT Lincoln Laboratory
Parallel Computing Presented by Justin Reschke
Nesting Milestone Materials Nesting design document Updated NUOPC Layer software prototype bundled with ESMF Updated NUOPC Layer reference manual Nesting.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
F453 Module 8: Low Level Languages 8.1: Use of Computer Architecture.
GMAO Seasonal Forecast
The Mach System Sri Ramkrishna.
Parallel Programming By J. H. Wang May 2, 2017.
Parallel Objects: Virtualization & In-Process Components
Many-core Software Development Platforms
Electronics II Physics 3620 / 6620
(Computer fundamental Lab)
Parallel Programming in C with MPI and OpenMP
Presentation transcript:

CCSM cpl6 Design and Interfaces Tony Craig Brian Kauffman Tom Bettge National Center for Atmospheric Researc Robert Jacob Jay Larson Everest Ong Argonne National Laboratory Chris Ding Helen He Lawrence Berkeley National Laboratory ESMF Workshop, May 14, 2003, GFDL

CCSM2 “Hub and Spoke” System cpl atm ocnice lnd Each component is a separate executable Each component is on a unique set of hardware processors All communications go through coupler Coupler –communicates with all components –maps (interpolates) data –merges fields –computes some fluxes –has diagnostic, history, and restart capability

CCSM2 “Hub and Spoke” System –Multiple Executables Inherited from CSM1.0 (Cray-OS could dynamically load balance a multi-executable system) Allows constructing a coupled system with a minimum of modification to individual model’s source code. Coupling is achieved by a handful of subroutine calls. Each model’s working group can continue to use and develop their model in a standalone mode which is closely related to the coupled version. Disadvantages: –Startup of multiple executables, control of thread/processor count highly system dependent. –Running a “standalone-equivalent” (one active model and 3 data models) still requires 5 executables.

CCSM2 “Hub and Spoke” System – The Hub Individual models only talk to the Hub and have no idea how many or which models are in the coupled system. Easy to swap out other models. CCSM is a multi model system: 13 different models—multiple combinations allowed (set at compile-time). Can perform global diagnostics at the hub and check conservation (does heat out = heat in globally?) Natural place to put calculations that don’t clearly belong in one of the individual models (air-sea fluxes, mappings, inter-model accumulation).

Design Issues for CCSM2.1/cpl6 Address Shortcomings in cpl5 –Alleviate potential bottleneck by moving to distributed memory parallelism –Do MxN data transfers –Generalize the model interface and the coupler functionality. –Simplify the process of extending the coupled system. Keep the Multiple-Executable execution mode Keep the Hub-and-Spoke Simplify coupling interface in components but keep similar level/location of source modification. (Project start: June, 2000)

Design Issues for CCSM2.1/cpl6 All the models are F90 so make cpl6 and all supporting software (MCT) F90 to avoid inter- language issues. Must run on many platforms Cpl6 requirements document:

cpl6 Design MCT* MPH** * Model Coupling Toolkit ** Multi-Component Handshaking Library cpl6 High level designed specifically for CCSM. Lower levels have general coupling capabilities. The cpl6 design has abstracted, parallel communication software into lower layers

cpl6 Design: Another view of CCSM In cpl5, MPI was the coupling interface In cpl6, the “coupler” is now implicitly hooked to each component via the coupling interfaces –Components unaware of coupling method –Coupling work can be carried out on component processors –Separate coupler no longer absolutely required atm lnd iceocn cpl coupling interface layer hardware processors

Cpl6-Model Interface Modules cpl_fields_mod –All models “use cpl_fields_mod” –Provides common field names and indicies to entire system. –Differentiates states and fluxes –Naming convention allows automatic routing of data between components for “simple” fields. cpl_interface_mod –All models “use cpl_interface_mod” –Simple interfaces, simple arguments (6 subroutines) –The components pass simple Fortran arrays to interface routines which then load them into cpl6 data types. –Components don’t know about MCT, cpl6 data types, or the underlying communication method. –Coupler operates directly on cpl6 datatypes and passes them to cpl_interface routines. Source or target identified by arguments. Replaces model-specific comm modules in cpl5. –Extensible

Basic cpl6 Data Types Contract –Bundle, Infobuffer, Router Infobuffer –Non-gridded data. integers and reals. Error codes, date, time of day, orbital parameters Bundle –Fundamental cpl6 storage data type for gridded data –Name, Domain, Attribute Vector, Counter Domain –cpl6 grid data type –Name, Attribute Vector of grid data (lats, lons), GSMap (decomposition) Map –Name, Smat, Domains, Rearranger

MCT Data Types Used by Cpl6 Attribute Vector –Fundamental data storage type –2d integer and real arrays (field,grid point) –Strings for field names Global Seg Map –Decomposition information Router –M to N inter-model communication information Rearranger –Local intra-model Communication information Smat –Scattered mapping matrix data MCT Design Note: Motivation to write MCT was partly to handle the data transfer issues raised in converting CCSM’s coupler to distributed memory while simultaneously retaining the ability to “hook up” easily to a gridded component model with unknown internal data structures and decomposition.

cpl6 Summary CCSM production coupler as of March, 2003 Duplicates cpl5 “science” Fully parallel distributed memory coupler Has M to N communication between components Coupling interfaces abstract communication method away from components Very usable, flexible, and extensible coupler Good communication and overall performance, scales well to multiple processors and higher resolutions Cpl6 tested/working only in concurrent, multiple executable mode. Plan to start exploring concurrent, single executable.

CCSM2/CPL6 Answers System Requirements: Linux/Unix, MPI. Components cannot spawn other components. Programming language: F90, some C. Not neutral. Component Abstraction: Contract, cpl_interface subroutines, cpl_fields names. Data is somewhat self describing: Can inquire about number of attributes and names. Each vector of reals or ints has a character string associated with it. Data structure is extensible. Data always copied between components (no choice in multiple executable configuration) Two component registries: one in MPH, one in MCT. Components do not effect other components. CPl6 assumes five named components. A “component” is either a physical model (atm, ocn, ice, lnd) or the coupler. Components are otherwise indistinguishable.

More CCSM2/CPL6 Answers Components can be internally parallel (MPI, threads, hybrid), can run concurrently and can support multiple executables. Components have some specific functions: e.g. atm component must send atmosphere state. But many different programs can “stand in” for the atmosphere. No virtualization of process/thread/CPU. There’s at least one MPI processes for each component. Components can not come and go during execution. Compute resources can not be acquired/released during execution (MPI needs to do that first!) Complicated model-dependent initialization phase. High level control syntax is the same for serial, parallel Components must be in F90 or provide an F90 interface layer to cpl6 and use the cpl_interface routines.

Yet More CCSM2/CPL6 Answers Each component is responsible for saving/restoring its own internal state. Coupler will send signal to save state. Coupler saves additional state for exact restart of coupled system. Bringing in a new component to replace a current one involves: add cpl6 modules to include path and link to mct/mpeu/mct libraries. Add cpl6_interface calls at appropriate places. Load simple fortran array arguments. Bringing in a “6 th ” component will require minor changes to cpl6 (and coupler’s main.) Target users of cpl6: Two types: –coupler writer. Whoever writes coupler’s main.F90 –Model integrator: person(s) charged with integrating a given component model into CCSM. Target component authors: Earth System scientists and their students/postdocs/programming staff who develop numerical models of parts of the Earth’s climate system.

END