Running Required Test Suites
After deploying a new or updated Spack environment, you must validate it by running the required test suite(s) for each supported machine, compiler, and MPI variant. This ensures that core E3SM components build and run correctly in the new environment.
MPAS-Ocean: Running the pr Suite
For each machine, compiler, and MPI combination (for example, on Chrysalis with Intel and OpenMPI):
Start a Clean Environment
Open a fresh terminal or run
bashto ensure a clean shell environment.Source the Load Script
source load_polaris_dev_0.3.0-alpha.1_chrysalis_intel_openmpi.sh
(Replace
chrysalis,intel, andopenmpiwith your machine, compiler, and MPI as appropriate. See MPAS-Ocean and -Seaice Supported Machines.)Set Up (and Auto-Build) the Suite
Let Polaris make a clean build of MPAS-Ocean for you with
--clean_buildand--model mpas-ocean:polaris suite -c ocean -t pr --clean_build --model mpas-ocean\ -w /path/to/polaris_scratch/mpaso_pr_intel_openmpi
Notes:
By default, Polaris builds into the
buildsubdirectory of the suite work directory supplied with-wand generates a build script in this directory (see Build utilities).Using the
--branchflag is not recommended so that the Omega submodule in your Polaris tree is used, and required submodules are checked out automatically.You can pass extra make flags via
--cmake_flags(e.g.,--cmake_flags "-j 8").
Run the Suite
cd /path/to/polaris_scratch/mpaso_pr_intel_openmpi sbatch job_script_pr.sh
Check Results
Wait for the job to complete. If all tests pass, check the box for this configuration in your PR. If not, file an issue (in the Polaris repo), note the problem, and link to the issue next to the (unchecked) checkbox in the PR description.
Omega: Running CTests and omega_pr Suite
For each machine, compiler, and MPI combination (for example, on Chrysalis with Intel and OpenMPI):
Start a Clean Environment
Open a fresh terminal or run
bashto ensure a clean shell environment.Source the Load Script
source load_polaris_dev_0.3.0-alpha.1_chrysalis_intel_openmpi.sh
(Replace as appropriate for your configuration.)
Run Omega CTests
./utils/omega/ctest/omega_ctest.py -c -s -o e3sm_submodules/Omega
Check CTest Results
Wait for the tests to complete. If all tests pass, check the box for this configuration in your PR. If not, file an issue (in the Polaris or Omega repo), note the problem, and link to the issue next to the (unchecked) checkbox in the PR description.
Set Up (and Auto-Build) the Suite
Omega will have already been built by the CTest utility in
build_omega/build_<machine>_<compiler>under your Polaris branch (see Build utilities). To reuse that build when setting up theomega_prsuite, point--component_pathat this directory, for example:polaris suite -c ocean -t omega_pr --model omega \ -w /path/to/polaris_scratch/omega_pr_intel_openmpi \ -p /path/to/polaris_branch/build_omega/build_<machine>_<compiler>
If you omit
-pand instead pass--build, Polaris will build Omega into thebuildsubdirectory of the suite work directory (supplied with-w).Notes:
Using the
--branchflag is not recommended so that the Omega submodule in your Polaris tree is used, and required submodules are checked out automatically.You can pass extra CMake flags via
--cmake_flags.
Run the Suite
cd /path/to/polaris_scratch/omega_pr_intel_openmpi sbatch job_script_omega_pr.sh
Check Results
Wait for the job to complete. If all tests pass, check the box for this configuration in your PR. If not, file an issue (in the Polaris repo), note the problem, and link to the issue next to the (unchecked) checkbox in the PR description.
Notes
Always use a clean environment to avoid contamination from previous runs.
Use the correct load script for the machine, compiler, and MPI variant being tested.
For each configuration, document the outcome in the PR checklist, linking to issues as needed.
Tip: If you are testing on a different machine or with a different compiler/MPI, simply substitute the appropriate names in the examples above. For a full list of supported combinations and the correct make targets, see the tables in MPAS-Ocean and -Seaice Supported Machines and Omega Supported Machines.