Skip to content

Converting ACME from cime2 to ESMCI cime

Alice Bertini edited this page Aug 2, 2016 · 2 revisions

This is on the general ESMCI wiki so everyone can review and spot potential problems.

Guide for converting ACME from cime2 to the latest ESMCI cime

Prior to doing the upgrade, work with ESMCI/cime standalone and ACME source. The following can be done in any order

  1. Create tool for converting ACME/cime/scripts/Tools/config_grid.xml to ESCMI/cime/cime_config/acme/config_grid.xml and apply tool. DONE

  2. Create tool for converting ACME/cime/machines-acme/config_pes.xml to ESMCI/cime/cime_config/acme/allactive/config_pes.xml DONE

  3. Remove any tests using pop or cice because we don't want to upgrade those components to CIME5.

  4. Move ACME/cime/scripts-acme/pointclm to ACME/components/clm/tools/shared/PTCLM DONE

  5. In each active component, create a cime_config directory

    1. git mv cimetests to cime_config/testdefs"
    2. 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.
    3. Issue a PR for the above for each model. Ask spokes to check content of new config_component.xml and config_compsets.xml
  6. Test upgrades can now start. See Issue #228 for updates and discussion.

  7. Machine POC's check that module/soft behavior is the same from the new config_machiens.xml using CIME standalone and A,X cases.

Doing the upgrade

  1. After the next alpha tag, freeze all development in ACME/cime.

  2. 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.

  1. Replace the existing subtree with the latest ESMCI CIME

  2. Verify CIME-only cases still work (this is being extra-careful)

  3. In each active component directory, finish making the content of cime_config

    1. "git mv" bld/model.buildlib to cime_config/buildlib
    2. "git mv" bld/model.buildnml to cime_config/buildnml
    3. "git mv" bld/usr_nl_ model to cime_config/
    4. "git rm" bld/model.cpl7.template
  4. Try a simple land-only I-case. (the case that uses the least number of active components)

  5. Try an F-case

  6. Try a G-case

  7. Try a D-case

  8. Try to run a low-res WCYCLE case

  9. Try to compile a high-res WCYCLE case.

  10. Get acme_developer and acme_integration to pass (at same level as with old CIME)

  11. Use config_grids.xml conversion tool one more time on latest ACME/cime/scripts/Tools/config_grids.xml file.

  12. Use config_pes.xml conversion tool one more time on latest ACME/cime/machines-acme/config_pes.xml file

  13. Issue PR.

After merge of CIME5 to master

  1. Add any pe layouts, compsets or configurations missed during PR testing.

  2. Re-implement omitted features. The following features were not merged from ACME to ESMCI cime and need to be reimplemented:

    1. "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.

    2. Module loading/unloading hacks. Was needed on NERSC machines. Mods to ModuleLoader.pm.

    3. ACME timing provenance. Make sure CIME creates/stores all needed data.

Clone this wiki locally