-
Notifications
You must be signed in to change notification settings - Fork 365
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CMake 3.27.9 causes SCORPIO configuration errors on Frontier with crayclanggpu when OMP_NUM_THREADS > 1 #6750
Comments
@trey-ornl This issue appears to have been introduced in CMake 3.22 and persists through version 3.27. As shown in the tests above, the error occurs consistently with cmake/3.22.2 and cmake/3.27.9 but does not occur with cmake/3.21.3 or the system-installed CMake version 3.20.4. This suggests a long-standing bug in CMake that has yet to be resolved. That is why crayclang-scream still uses cmake/3.21.3. |
@dqwu Yes, there appears to be a disagreement between CMake and Cray Fortran that emerges at CMake 3.22. I find it odd to use |
@trey-ornl Yes, cmake/3.27.9 works for both craygnuamdpgu and gnugpu when PrgEnv-gnu is used. Conditions to reproduce this issue: A similar issue (even for PrgEnv-gnu) can be reproduced when CMAKE_SYSTEM_NAME=Catamount (see E3SM-Project/scorpio#517):
Output:
Question:
|
@trey-ornl Maybe we should report this issue to CMake developers? Case 1: PrgEnv-gnu with CMAKE_SYSTEM_NAME=Catamount, CMake 3.22 or higher
Case 2: PrgEnv-cray with craype-accel-amd-gfx90a and rocm/5.4.0 (-fopenmp set in LDFLAGS), CMake 3.22 or higher
|
@dqwu , I could reproduce this issue on my end. Core/24.07 was introduced to keep up with the updates of Frontier, but not for any specific technical reason as far as I know. So, I think both of the possible fixes you suggested are feasible. Since the machine and compiler settings for Frontier are shared by other E3SM groups (so far, the Omega Ocean group is the only active group that I am aware of), I think I will try the possible fixes with the E3SM general test suite, the SCREAM test case reported here, and the Omega test cases using cray and gnu compiler. |
@grnydawn It seems that using /usr/bin/cmake (without loading any CMake modules) might lead to unexpected build errors.
To resolve this, we can explicitly switch to Core/24.00 and use cmake/3.21.3 specifically for the crayclanggpu compiler:
|
PR #6689 explicitly loads the Core/24.07 module on Frontier. The only available CMake module with Core/24.07 is cmake/3.27.9. This version breaks the crayclanggpu build when OMP_NUM_THREADS > 1, particularly after PR #6747 re-enabled PIO_ENABLE_TOOLS for SCORPIO.
Steps to Reproduce on Frontier
CMake Error Message
This issue is also reproducible with standalone SCORPIO builds. It seems related to CMake versions 3.22 or higher, as described in E3SM-Project/scorpio#517, which mentions a similar issue occurring when CMAKE_SYSTEM_NAME is set to Catamount.
Tests with Different CMake Versions
[Failing with CMake/3.27.9]
[Failing with CMake/3.22.2]
[Working with CMake/3.21.3]
[Working with /usr/bin/cmake (3.20.4)]
Possible Fixes
The text was updated successfully, but these errors were encountered: