Skip to content

Set OMEGA_ARCH from the E3SM machine configuration - #526

Open
grnydawn wants to merge 1 commit into
E3SM-Project:developfrom
grnydawn:ykim/omega/arch-e3sm
Open

Set OMEGA_ARCH from the E3SM machine configuration#526
grnydawn wants to merge 1 commit into
E3SM-Project:developfrom
grnydawn:ykim/omega/arch-e3sm

Conversation

@grnydawn

@grnydawn grnydawn commented Aug 26, 2026

Copy link
Copy Markdown

This PR sets OMEGA_ARCH from the E3SM machine configuration. In addition, it resolves issues caused by differences between E3SM coupled builds with and without EAMxx.

  • Derive GPU backend from USE_CUDA, USE_HIP, USE_SYCL, or threading settings
  • Forward Kokkos_ARCH_* and Kokkos_ENABLE_* options from KOKKOS_OPTIONS
  • Fail GPU builds when no Kokkos architecture is configured
  • Preserve EAMxx-provided Kokkos::kokkos when available
  • Fix CASEROOT handling for coupled and standalone builds
  • Handle bare and namespaced dependency targets safely
  • Use EKAT to build Kokkos in coupled builds without EAMxx
  • Add BUILD_CONFIG_TEST to verify OMEGA_ARCH matches the Kokkos execution space

Fix: #508

The following coupled test passed on PM-CPU, PM-GPU, and Chrysalis. Tests on Frontier and Aurora are still ongoing.

./create_newcase     \
    --case <casedir>     \
    --res T62_oQU240 \
    --compset COMEGA-IAF     \
    --driver mct    \
    --machine chrysalis     \
    --compiler intel  \
    --walltime 00:30:00  \
    --handle-preexisting-dirs r

A coupled test with --res TL319_EC30to60E2r2 --compset COMEGA-JRA1p5 looks good. It successfully passed both compilation and execution. However, the run ended prematurely due to the job allocation time limit on PM-CPU.

Checklist

  • Documentation:

  • Linting

  • Building

    • CMake build does not produce any new warnings from changes in this PR
  • Testing
    chrysalis, gnu, openmpi

    • CTests Pass
    • E3SM-Coupled C-case Pass

    pm-cpu, gnu, mpich

    • CTests Pass
    • E3SM-Coupled C-case Pass

    pm-gpu, gnugpu, mpich

    • CTests Pass
    • E3SM-Coupled C-case Pass
  • New tests:

    • CTest unit tests for new features have been added per the approved design.

* Derive GPU backend from `USE_CUDA`, `USE_HIP`, `USE_SYCL`, or threading settings
* Forward `Kokkos_ARCH_*` and `Kokkos_ENABLE_*` options from `KOKKOS_OPTIONS`
* Fail GPU builds when no Kokkos architecture is configured
* Preserve EAMxx-provided `Kokkos::kokkos` when available
* Fix `CASEROOT` handling for coupled and standalone builds
* Handle bare and namespaced dependency targets safely
* Use EKAT to build Kokkos in coupled builds without EAMxx
* Add `BUILD_CONFIG_TEST` to verify `OMEGA_ARCH` matches the Kokkos execution space
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CMake CMake-related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Need to set OMEGA_ARCH when building as part of E3SM

1 participant