Repository navigation
Set MPILIB from the case in standalone Omega builds - #600
Conversation
The machine Macros.cmake selects compilers and flags by MPILIB; on
pm-gpu and pm-cpu, mpich uses the Cray CC wrapper (which links GTL on
pm-gpu) and anything else uses mpicxx. CIME builds pass -DMPILIB, but
read_cime_config stored the case's value only as MPILIB_NAME, so
MPILIB was empty when Macros.cmake was included and standalone pm-gpu
builds linked omega.exe without libmpi_gtl_cuda.
Query MPILIB directly so it is set before Macros.cmake is included,
which also makes the existing mpi-serial checks work, and replace the
remaining MPILIB_NAME uses (including a $ENV{MPILIB_NAME} that was
never set).
Fixes E3SM-Project#599
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
TestingI ran Polaris' So the fix works with Polaris Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly. |
Since E3SM-Project#566, Aurora's and Chrysalis's Intel compilers are called intel rather than oneapi-ifx. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Testing: chrysalis, intel, openmpiCTests: 58 of 58 passed. Tested the merge of #600 ( Polaris
|
Testing: aurora, intel, mpichCTests: 58 of 58 passed. Tested the merge of #600 ( Polaris
|
Testing: aurora, intelgpu, mpichCTests: 58 of 58 passed. Tested the merge of #600 ( Polaris
|
Since E3SM-Project/Omega#566, Omega calls Aurora's and Chrysalis's compilers intel and intelgpu, and E3SM-Project/Omega#600 updates the template to match, adding a row for Aurora's GPU build. Polaris still calls Aurora's compilers oneapi-ifx and oneapi-ifxgpu, so those rows stay mapped. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Since E3SM-Project/Omega#566, Omega calls Aurora's and Chrysalis's compilers intel and intelgpu, and E3SM-Project/Omega#600 updates the template to match, adding a row for Aurora's GPU build. With E3SM-Project#835, Polaris uses the same names, so no row is mapped. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Since E3SM-Project/Omega#566, Omega calls Aurora's and Chrysalis's compilers intel and intelgpu, and E3SM-Project/Omega#600 updates the template to match, adding a row for Aurora's GPU build. Polaris still calls Aurora's compilers oneapi-ifx and oneapi-ifxgpu, so those rows stay mapped. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Testing: pm-cpu, gnu, mpichCTests: 58 of 58 passed. Tested the merge of #600 ( Polaris
|
Testing: pm-gpu, gnugpu, mpichCTests: 58 of 58 passed. Tested the merge of #600 ( Polaris
|
Testing: frontier, craygnu, mpichCTests: 58 of 58 passed. Tested the merge of #600 ( Polaris
|
Testing: frontier, craygnu-mphipcc, mpichCTests: 58 of 58 passed. Tested the merge of #600 ( Polaris
|
Since E3SM-Project/Omega#566, Omega calls Aurora's and Chrysalis's compilers intel and intelgpu, and E3SM-Project/Omega#600 updates the template to match, adding a row for Aurora's GPU build. Polaris still calls Aurora's compilers oneapi-ifx and oneapi-ifxgpu, so those rows stay mapped. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Since E3SM-Project/Omega#566, Omega calls Aurora's and Chrysalis's compilers intel and intelgpu, and E3SM-Project/Omega#600 updates the template to match, adding a row for Aurora's GPU build. Polaris still calls Aurora's compilers oneapi-ifx and oneapi-ifxgpu, so those rows stay mapped. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
grnydawn
left a comment
There was a problem hiding this comment.
This PR fixes a bug where the MPILIB CMake variable was not being set, preventing the proper compiler flags from being loaded in the CMake files. All CTests are passed on pm-gpu. Approved.
Omega develop is now cdb935bb5a, which merges E3SM-Project/Omega#600 so that standalone Omega builds set MPILIB from the case, which pm-gpu needs. It has the same tree as the Omega E3SM-Project#835's testing built: b90c3dae8 with E3SM-Project#600 merged in. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Since E3SM-Project/Omega#566, Omega calls Aurora's and Chrysalis's compilers intel and intelgpu, and E3SM-Project/Omega#600 updates the template to match, adding a row for Aurora's GPU build. Polaris still calls Aurora's compilers oneapi-ifx and oneapi-ifxgpu, so those rows stay mapped. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Standalone Omega builds include the machine's
Macros.cmakewithout settingMPILIB, which those macros use to choose compilers. Since #566, pm-cpu and pm-gpu use the CrayCCwrapper only whenMPILIBismpich, so standalone builds there have been linking withmpicxx; on pm-gpu,omega.exethen lacks Cray's GPU transport layer and aborts at startup. This setsMPILIBfrom the case, as CIME builds do with-DMPILIB, and dropsMPILIB_NAME.Among supported machines, only the pm-cpu (gnu) and pm-gpu (gnugpu) macros branch on
MPILIB, so other builds are unchanged apart fromOmegaBuild.cmake's own mpi-serial checks, which now work.This also updates the PR template's testing rows: Aurora's and Chrysalis's compilers are now
intelrather thanoneapi-ifx, as in E3SM's machine configs since #566, and Aurora's GPU build (intelgpu) gets its own row.Checklist
Linting
Building
Testing
aurora, intel, mpich
aurora, intelgpu, mpich
chrysalis, intel, openmpi
frontier, craygnu, mpich
frontier, craygnu-mphipcc, mpich
pm-cpu, gnu, mpich
pm-gpu, gnugpu, mpich
Provide relevant details in a comment to the PR titled
TestingFixes #599
Posted by Claude Code on @xylar's behalf. The testing, analysis and wording above are AI-authored; please check them accordingly.