Converting ACME from cime2 to ESMCI cime - ESMCI/cime GitHub Wiki
This is on the general ESMCI wiki so everyone can review and spot potential problems.
Prior to doing the upgrade, work with ESMCI/cime standalone and ACME source. The following can be done in any order
-
Create tool for converting ACME/cime/scripts/Tools/config_grid.xml to ESCMI/cime/cime_config/acme/config_grid.xml and apply tool. DONE
-
Create tool for converting ACME/cime/machines-acme/config_pes.xml to ESMCI/cime/cime_config/acme/allactive/config_pes.xml DONE
-
Remove any tests using pop or cice because we don't want to upgrade those components to CIME5.
-
Move ACME/cime/scripts-acme/pointclm to ACME/components/clm/tools/shared/PTCLM DONE
-
In each active component, create a cime_config directory
- git mv cimetests to cime_config/testdefs"
- Seed cime_config with config_compsets.xml, config_component.xml from conversion done by Mariana using the May 22 version of the combined ACME cime2 config_compsets.xml.
- Issue a PR for the above for each model. Ask spokes to check content of new config_component.xml and config_compsets.xml
-
Test upgrades can now start. See Issue #228 for updates and discussion.
-
Machine POC's check that module/soft behavior is the same from the new config_machiens.xml using CIME standalone and A,X cases.
-
After the next alpha tag, freeze all development in ACME/cime.
-
Do one last merge from ACME/cime to ESMCI/cime (Dev up to 6-3 merged in PR #217; Need to do one more)
The following all takes place on a single branch.
-
Replace the existing subtree with the latest ESMCI CIME
-
Verify CIME-only cases still work (this is being extra-careful)
-
In each active component directory, finish making the content of cime_config
- "git mv" bld/model.buildlib to cime_config/buildlib
- "git mv" bld/model.buildnml to cime_config/buildnml
- "git mv" bld/usr_nl_ model to cime_config/
- "git rm" bld/model.cpl7.template
-
Try a simple land-only I-case. (the case that uses the least number of active components)
-
Try an F-case
-
Try a G-case
-
Try a D-case
-
Try to run a low-res WCYCLE case
-
Try to compile a high-res WCYCLE case.
-
Get acme_developer and acme_integration to pass (at same level as with old CIME)
-
Use config_grids.xml conversion tool one more time on latest ACME/cime/scripts/Tools/config_grids.xml file.
-
Use config_pes.xml conversion tool one more time on latest ACME/cime/machines-acme/config_pes.xml file
-
Issue PR.
-
Add any pe layouts, compsets or configurations missed during PR testing.
-
Re-implement omitted features. The following features were not merged from ACME to ESMCI cime and need to be reimplemented:
-
"Convenient way to run OpenACC from create_newcase". advice: use "--compiler" to set the compiler on titan. Implement "CAM_TARGET" using CAM_CONFIG_OPTS or an additional CPPDEF in config_compilers.
-
Module loading/unloading hacks. Was needed on NERSC machines. Mods to ModuleLoader.pm.
-
ACME timing provenance. Make sure CIME creates/stores all needed data.
-