-
Notifications
You must be signed in to change notification settings - Fork 542
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
intel.yml CI workflow must change to support new distribution method, new LLVM compilers #1156
Comments
@AlexanderRichert-NOAA and @MatthewMasarik-NOAA when I switch from ubuntu-20.4 to ubuntu-latest, the build fails. Do you know why? See https://github.com/edwardhartnett/WW3/actions/runs/7330891012/job/19962722122. |
Hi @edwardhartnett, sorry I don't know the why, though I can say for the WW3 Intel workflow we had moved from ubuntu-latest back to ubuntu-20.04 a bit ago to solve CI crashes. Though the GNU CI workflow is at ubuntu-latest. I tried to get both Intel and GNU to be on the same version, either one, but ultimately couldn't so they are currently split. |
OK, we definitely want to learn what is causing the problem between ubuntu-20.03 and ubuntu-latest. That's exactly the kind of thing that causes portability issues. Also we want to add testing with the new intel compilers: https://www.intel.com/content/www/us/en/developer/articles/technical/getting-to-know-llvm-based-oneapi-compilers.html#gs.2oksgd. @AlexanderRichert-NOAA did this to NCEPLIBS but I can't figure out how to do it to WW3. When he gets back from leave we can ask for help. Also also I see that the oneapi compilers can also be installed with spack. https://spack.readthedocs.io/en/latest/build_systems/inteloneapipackage.html. This is probably how we want to do things, but when I tried, everything broke. ;-) |
As you're using spack to install your dependencies is there a reason you're not also building WW3 with spack? We (https://github.com/ACCESS-NRI) will want to utilise spack builds in the future for WW3, so would certainly be interested in collaborating on this capability. By utilising spack you can leverage its ability to determine and build all dependencies automatically, and so create model agnostic CI workflows. e.g. this is what we've done: https://github.com/ACCESS-NRI/build-ci See the in-depth developer docs for more detail. One goal with this approach was to be less sensitive to changes in the GitHub runner software stack, and control the build environment as much as possible. We're still in the early stages, but we're happy with how it is performing so far. |
@edwardhartnett see https://github.com/AlexanderRichert-NOAA/WW3/blob/intel_ci_fix_jan24/.github/workflows/intel.yml for fixes (see CI output here). In short, in addition to updating to ubuntu-latest, I am
|
Thank you much, @AlexanderRichert-NOAA. We definitely appreciate your work in sorting out what was going on under the hood here. |
Hi @AlexanderRichert-NOAA, I wanted to check in with you on your fix. Did you want to submit a PR with your branch, or would you prefer us to submit one? Either is just fine, I didn't want to act though before verifying your plans. |
I went ahead and created a PR with my updates (it's current with develop and the CI tests pass): #1161 |
Hi @aidanheerdegen, thanks for your interest and pointing us your |
And actually, if you're fine with having |
Hi @MatthewMasarik-NOAA. Agreed Using There is a nice explanation in the docs here https://github.com/ACCESS-NRI/build-ci/blob/main/README-DEV.md#ci-workflow-run-through Having said which, there is currently a wrinkle with the way GitHub actions mounts containers that we're trying to fix right now.
I'm a big fan of CMake for Fortran projects: it has excellent dependency resolution, the best I have used (I wrote some experimental CMake build infra for MOM5). We didn't use CMake for MOM5 because we wanted to match as closely as possible the existing Makefile ( Thanks for engaging, and I'm sorry for hijacking this issue. When we start work on a spack package for WW3 I'll create a separate issue and reference this one. I'd imagine this would be within the next few months, but my predictions are notoriously unreliable. |
Hi @aidanheerdegen, thanks for the explanation, I see what you're saying supporting legacy system for the MOM5 example. I think if my understanding is correct, implementing a WW3 class/package with cmake should be not too difficult. If you go that route and need any pointers on potential arguments to the calls, feel free to tag me. Best of luck with your efforts. |
Describe the bug
Intel has changed the way it distributes its free compiler. The current intel CI works because this is cached in the CI build, but when the cache keys are changed, the build will fail.
To Reproduce
Create a new branch and change the cache keys in the intel.yml build.
Expected behavior
We need the intel build to work, of course.
Also intel has introduced a new set of compilers, which we should also use to build in CI.
The text was updated successfully, but these errors were encountered: