Overview of Deployment and Testing๏
This section documents the full testing and deployment process, including how to:
Update the E3SM Spack fork to support new versions
Maintain and release new versions of
mache
for system-specific Spack configurationsDeploy RCs and full releases of E3SM-Unified on supported HPC platforms
Identify and resolve deployment issues
Phased Deployment Strategy๏
Testing typically begins with a partial deployment of an E3SM-Unified RC to a few key HPC systems. Once core functionality and package compatibility are verified, a full deployment to all supported machines is performed.
Each iteration involves collaboration between the Infrastructure Team and tool maintainers to:
Validate that tools like
zppy
,e3sm_diags
, andmpas-analysis
run correctlyConfirm compatibility with system MPI, compilers, and Python versions
Identify mismatches or conflicts in environment resolution
Key Components of the Deployment Process๏
The following steps and infrastructure are used when testing and deploying a new release:
๐ ๏ธ Updating the E3SM Spack Fork๏
Add new versions of performance-critical tools (e.g., NCO, ESMF, MOAB)
Create
spack_for_mache_<version>
branches for use inmache
๐งฉ Updating mache
๏
Keep system-specific Spack environment templates in sync with E3SM module stacks
Create RC and final releases of
mache
Use
utils/update_cime_machine_config.py
to streamline updates
๐ Deploying on HPCs๏
Use the
deploy_e3sm_unified.py
script and template infrastructure ine3sm_supported_machines
Build environments and activation scripts tailored to each system
๐งช Troubleshooting Deployment Issues๏
Resolve Spack build failures and MPI/compiler mismatches
Address problems with activation, modules, or symbolic links
Common pitfalls in
default.cfg
orshared.py
configuration
Audience๏
This section is primarily intended for E3SM-Unified maintainers and release engineers. Familiarity with Spack, Conda, and HPC system environments is assumed.
โก Start with: Updating the E3SM Spack Fork