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. 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
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
Frequently Asked Questions
I do not have a high performance compute cluster. Can I run GCHP?
Yes, you can run GCHP on as little as a single node as long as there are at least 6 cores available. We are working to make serial runs on a single core possible in the future.
Is GCHP only for high resolution runs?
No! You can run GCHP at the cubed-sphere grid equivalent of 4x5 (c24) and 2x2.5 (c48). The GCHP standard simulation run directory is set up for c48 by default starting in GCHP v11-02e but can easily be changed to whatever resolution you would like to run at by updating the runConfig.sh bash script in the run directory. Unlike GEOS-Chem classic, a single GCHP run directory can be used for any run resolution.
What are the different cubed-sphere resolutions and how do they compare to lat/lon grids?
Below we summarize the standard resolution specifications and the recommended timesteps (based on the timesteps used in GEOS-Chem "classic").
Standard resolution specification Approximate CS equivalent(s) Suggested timestep (s) 4° x 5° C24 1200 2° x 2.5° C48, C45 900 1° x 1.25° C96, C90 600 0.5° x 0.625°1 C192, C180 300 0.25° x 0.3125°2 C384, C360 300 0.125° x 0.15625° C7203 180
I changed my model resolution and my run completed successfully. Are there any scientific considerations I should be aware of before drawing conclusions from my results?
Yes, there are several resolution-dependent settings or inputs that will result in degraded output quality if the model resolution increases from the default c24. These include lightning scale factors, dust parameterization, regridded cloud variables, and use of the Voronoi timezones. The GCHP Development Team is working to resolve these dependencies. Until then, please contact the GEOS-Chem Support Team for more information.
I don't have met fields at the lat/lon equivalent of the cubed-sphere resolution I want to run at. What should I use?
As a general rule of thumb you may run GCHP at cubed-sphere resolutions up to a factor of two larger than your input met resolution equivalent. For example, you could use 2x2.5 input met for both c24 and c48 runs. GCHP will generally run successfully with even higher ratios, such as 2x2.5 input met for c180. However, in these cases you should use caution in your interpretation of results. In general it is always best to use the finest met resolution available.
Should I change my simulation timestep if I run at very high resolution?
You may increase your timestep to improve speed but this is not required. A 30 minute dynamics timestep and 60 minute chemistry timestep may be adequate for your purposes. We recommend that you never reduce your timestep from the default of 10 minutes for dynamics and 20 minutes for chemistry/emissions.
How can I get a restart file for a different cubed-sphere resolution?
All GCHP run directories come with symbolic links to five resolutions of restart files: c24, c48, c90, c180, and c360. You can generate restart files for other resolutions by regridding an existing restart file using GCPy.
I can now compile and run GCHP. Do you have tips that might help me optimize my use of GCHP 13?
Below are several time-saving tips to keep in mind when you start regularly using GCHP. This by no means an exhaustive list. Please submit your own to GCST if you think something should be included!
- Changing simulations does not require recompilation. You can install the gchp executable to different run directories for the same code version.
- runConfig.sh overwrites settings in other config files. Beware!
- Run-time MAPL/ESMF errors are nearly always from bad config. Check your run directory *.rc files and runConfig.sh.
- Errors in CAP usually indicate bad simulation dates. Check simulation start, end, and duration in config file runConfig.sh.
- ExtData errors indicate a problem in input. Check config files ExtData.rc and HEMCO_Config.rc.
- MAPL History error is problem with diagnostics; check config file HISTORY.rc.
- Create a GCHP GitHub issue if you think you need to edit MAPL or another GMAO library.