GCHP Main Page
About High Performance GEOS-Chem
GEOS-Chem with the high performance option (GCHP) is the next generation of GEOS-Chem. It uses a distributed memory capability designed to enable efficient scaling across many cores, and thus enable finer resolution simulations. GCHP has the advantage of using a cubed sphere geometry that enables more accurate transport and eliminates the polar singularity inherent to lat-lon grids. With these advances you can still run the model on a single machine at coarse resolution if you choose to do so.
If you are working on a project using GCHP, please add your name and project description to the GCHP projects list. Also help the GCHP Working Group pool performance information across systems by contributing your GCHP run information on the GCHP Timing Tests page.
If you would like to stay informed of GCHP developments, please join the GEOS-Chem High Performance Working Group mailing list and subscribe to GCHP notifications on GitHub. You may also join the GCHP Slack workspace to interact with other users. If you would like receive help or participate in conversations about GCHP, please use the GCHP GitHub issue tracker. You may also contact the GEOS-Chem Support Team if you have questions or need assistance, or reach out to the GCHP Working Group Co-Chairs.
GCHP Wiki Guide
Validation and Performance
Help Resources and Quick Links
- IGC9 GCHP Model Clinic
- Frequently Asked Questions
- Tools for Regridding and Data Analysis
- Introduction to git presentation by Lizzie Lundgren
Speed improvements in GCHP 12.5.0
GCHP 12.5.0 uses MAPL version tag "gchp/v1.0.0" released in early 2019. The MAPL library, which is developed by NASA, is a wrapper for the Earth System Modeling Framework (ESMF), and handles not only I/O but also passing of data between components. With this version update GCHP input speed executes roughly 3-4 times faster than previous versions! This speed-up is due to parallelization within input read across one node, and the MAPL updates in this version are just the beginning of improvements to GCHP I/O bottlenecks.
Important Notes about GCHP 12.5.0
While we are encouraged by the improvements to GCHP in 12.5.0, a few issues remain open until the next MAPL update later this year.
- GCHP 12.5.0 currently has a slow memory leak due to updates to MAPL ExtData. NASA is aware of the issue and will be developing a fix soon. The memory leak is more pronounced for long simulations and can result in a simulation crashing due to exceeding memory available. Breaking up long runs into smaller consecutive runs avoids the issue but we find that doing so changes the output. Lizzie Lundgren (GCST) is investigating differences in GCHP output that happen when restarting a simulation, which may or may not be a problem with GEOS-Chem Classic as well. We are documenting all single versus multi-run differences at http://ftp.as.harvard.edu/gcgrid/geos-chem/validation/multi_vs_single_run/. Look there to assess if the scale of the differences would be a problem for you.
- GCHP 12.5.0 uses online ESMF regridding weights rather than external tile files for regridding. Due to ESMF domain decomposition rules this can result in a MAPL error if an input grid is too coarse for a run’s configured core count. We have seen this problem for 4°x5° input files when using >600 cores. GMAO has fixed this problem in a more recent version of MAPL. All 4°x5° input files are replaced with higher resolution files for GCHP 12.5.0 to avoid this issue. However, users may still run into problems if running with thousands of cores.
- There is a positive bias in surface ozone over the southern ocean in GCHP. It shows in comparisons with both GCC 12.5.0 and GCHP 12.4.0. The issue is resolution-dependent and occurs in FV3. An issue has been created on GEOS github for this: https://github.com/GEOS-ESM/GEOSgcm_GridComp/issues/48.
GCHP changes in the pipeline
Several major development updates to GCHP are slated for release in fall 2019. Updates include:
- Update to ESMF v8 public release
- Separation of ESMF from the GCHP repository and inclusion as an external module
- Replacement of GNU make with CMake for compilation
- Use of new GMAO public GitHub repositories as git submodules
- Restructuring of the GCHP repository to be a wrapper around GEOS-Chem, with GEOS-Chem at a git submodule within GCHP
The GCHP changes are necessary to keep pace with changes in the GMAO libraries upon which GCHP depends. They will enable ongoing inclusion of new MAPL developments that will improve GCHP performance and extend capabilities over time. The GCST is looking for volunteer beta testers to try out the new version on their systems and provide feedback. If you are interested in becoming a beta tester please contact the GEOS-Chem Support Team.
Recent Changes section added to GCHP online manual
There is now a Recent Changes section on the GCHP online manual homepage to help experienced users stay up-to-date with logistical changes for compiling and running GCHP. The GCHP Quick Start Guide is updated for every GCHP version release but it can be difficult for existing users to know where to look for changes. Instead, users should check the Recent Changes section to see a summary of what is new and then use the Quick Start Guide to hone in on the details. Summaries per version release will be archived (location TBD).
GCHP Cubed Sphere Grid Geometry
GCHP uses a cubed sphere grid rather than the traditional lat-lon grid used in GEOS-Chem Classic. While regular lat-lon grids are typically designated as ΔLat ⨉ ΔLon (e.g. 4⨉5), cubed sphere grids are designated by the side-length of the cube. In GCHP we specify this as CX (e.g. C24 or C180). The simple rule of thumb for determining the roughly equivalent lat/lon for a given cubed sphere resolution is to divide the side length by 90. Using this rule you can quickly match C24 with 4x5, C90 with 1 degree, C360 with quarter degree, and so on.
Harvard graduate student Jiawei Zhuang created the following interactive illustrations demonstrating key features of the GCHP cubed sphere geometry:
- Step-by-step illustration on how to create a cubed sphere grid
- Comparison of different cubed sphere map projections
- Creating a "stretched" cubed sphere to get fine resolution in a selected region of the world