1 / 16

Components and Concurrency in ESMF

Learn how ESMF release 2.1.0 supports concurrent execution, ensemble runs, and efficient communication between components for improved performance in computational modeling. Understand the benefits of threading for enhanced processing capabilities.

mreimer
Download Presentation

Components and Concurrency in ESMF

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Components and Concurrency in ESMF NASA GSFC GSI Nancy Collinsnancy@ucar.edu 2005 Community Meeting July 21, 2005 http://www.esmf.ucar.edu MITgcm GFDL FMS Suite NCAR/LANL CCSM NCEP Forecast GMAO Seasonal Forecast

  2. Current Status • Starting with ESMF release 2.1.0 ESMF Components can be executed concurrently as well as serially. • Child components can be created on a subset of the parent component’s PETs (new petList argument to the ESMF_ComponentCreate() call) • The main loop looks very much the same, but a new Blocking flag can be set to return immediately on all PETs which do not run the component. They can then start another component. • Ensemble runs are now supported as well.

  3. Sequential vs Concurrent

  4. ESMF_StateReconcile() • New ESMF_State call • ESMF Communications are all computed in parallel by each PET. • Each PET computes independently what data needs to be sent and to who, and what data will be received and from whom. • The reconcile process ensures all PETs have the global grid information for all data items, even those without local data. • Then they can compute who they will be receiving data from, or to whom they need to send data.

  5. Creating Ensembles Multiple Components running the same module code. Each can compute with a different set of input parameters.

  6. Ensembles seem: But they are:

  7. Get/SetInternalState Each component derived type maintains a private pointer to an allocated user data block. Think shared vs private variables in OpenMP, for example.

  8. Futures: Threading Threads allow a single processor to have more than one stream of execution. Threading is enabled in the Child component at SetServices time by making a VM Set call.

More Related