ufs-community / UFS_UTILS

Utilities for the NCEP models.
Other
21 stars 108 forks source link

Upgrade to Intel LLVM compilers #879

Closed DavidHuber-NOAA closed 22 hours ago

DavidHuber-NOAA commented 11 months ago

The 'classic' Intel compilers (ifort, icc, and icpc) are now discontinued and the new LLVM compilers (ifx and icx) are the only option starting with version 2024. All supported machines with working versions of the LLVM compilers should be upgraded to the LLVM suite.

Per @junwang-noaa - try to use the 2024 version as the 2023 version has some bugs.

GeorgeGayno-NOAA commented 3 months ago

Using 1056ef5, the unit tests were successfully run on Hercules and Hera.

NOTE: Setting CMAKE_C_FLAGS_RELEASE "-O2" (in ./CMakeLists.txt) caused the fre-nctools/tst_create_xgrid unit test to 'seg fault'. For now, I will set CMAKE_C_FLAGS_RELEASE "-O1" for IntelLLVM

GeorgeGayno-NOAA commented 2 months ago

@AlexanderRichert-NOAA - I want to update the Github workflows to use IntelLLVM. I think I completed part of the update at c10e85a. However, the libraries are built using https://github.com/GeorgeGayno-NOAA/UFS_UTILS/blob/intelLLVM/ci/spack.yaml. Can you or someone on the libraries team assist me with updating spack.yaml?

GeorgeGayno-NOAA commented 2 months ago

Hash c10e85a was tested on Hercules. All regression tests were run:

All failed tests had roundoff differences from their baselines.

GeorgeGayno-NOAA commented 2 months ago

All regression tests were run on WCOSS2 using 9511885. All tests passed as expected.

GeorgeGayno-NOAA commented 2 months ago

My preliminary tests show UFS_UTILS is working with the existing spack-stacks.

Will hold off on further work until it is determined whether new versions of spack-stack (that use IntelLLVM) will be implemented.

GeorgeGayno-NOAA commented 2 months ago

@AlexanderRichert-NOAA - I want to update the Github workflows to use IntelLLVM. I think I completed part of the update at c10e85a. However, the libraries are built using https://github.com/GeorgeGayno-NOAA/UFS_UTILS/blob/intelLLVM/ci/spack.yaml. Can you or someone on the libraries team assist me with updating spack.yaml?

I tried updates at 56bf5e1 and 98f840a, but the spack build fails during the compilation of sigio library routine sigio_module.f. I also see numerous warnings concerning compiler options. For example:

warning: unknown warning option '-Wc90-c99-compat'; did you mean '-Wc99-compat'? [-Wunknown-warning-option]

AlexanderRichert-NOAA commented 2 months ago

Ah yes, we added Intel OneAPI support to sigio but didn't actually do a release (right now it's failing because it's looking for fixed form because -free isn't being applied). I'll do a release shortly...

GeorgeGayno-NOAA commented 1 month ago

Big changes to the orog code were merged from 'develop' to the branch at 7dff2c3. The grid_gen regression tests were then run on Hercules. Tests 4 and 5 passed. Tests 1, 2, 3, 6 and 7 failed. The failed tests differed from the baseline, but the differences were considered 'round-off' in magnitude.

GeorgeGayno-NOAA commented 3 weeks ago

Ah yes, we added Intel OneAPI support to sigio but didn't actually do a release (right now it's failing because it's looking for fixed form because -free isn't being applied). I'll do a release shortly...

Thanks. I pointed to v2.3.3 at 0147b59, but now I am getting an error during the spack install. The error is:

Cannot satisfy 'sigio@2.3.3'
        required because sigio@2.3.3 requested explicitly 

Any ideas?

GeorgeGayno-NOAA commented 3 weeks ago

Ah yes, we added Intel OneAPI support to sigio but didn't actually do a release (right now it's failing because it's looking for fixed form because -free isn't being applied). I'll do a release shortly...

Thanks. I pointed to v2.3.3 at 0147b59, but now I am getting an error during the spack install. The error is:

Cannot satisfy 'sigio@2.3.3'
        required because sigio@2.3.3 requested explicitly 

Any ideas?

Is this the issue? 2.3.2 is required. https://github.com/JCSDA/spack-stack/blob/develop/configs/common/packages.yaml

AlexanderRichert-NOAA commented 3 weeks ago

No, version 2.3.3 isn't in the JCSDA fork yet. Let me see if I can add that right now...

AlexanderRichert-NOAA commented 3 weeks ago

It should work once https://github.com/JCSDA/spack/pull/480 is merged.

AlexanderRichert-NOAA commented 3 weeks ago

(Done)

GeorgeGayno-NOAA commented 3 weeks ago

(Done)

Thanks. Now I am running into the same issue with sfcio v1.4.1. My unit tests no longer use sfcio, so I am removing it from the workflow. But other users will need access to v1.4.2.

AlexanderRichert-NOAA commented 3 weeks ago

sfcio 1.4.2 is now available under JCSDA Spack.

GeorgeGayno-NOAA commented 18 hours ago

@AlexanderRichert-NOAA - after I merged to develop, the spack build is breaking. It worked fine in the branch. Any idea what is going on?

https://github.com/ufs-community/UFS_UTILS/actions/runs/11898145099

AlexanderRichert-NOAA commented 18 hours ago

I'll take a look.

AlexanderRichert-NOAA commented 13 hours ago

See https://github.com/ufs-community/UFS_UTILS/pull/998