Skip to content
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

Compilation Tests for ARW #2115

Open
wants to merge 10 commits into
base: release-v4.6.1
Choose a base branch
from

Conversation

islas
Copy link
Collaborator

@islas islas commented Sep 30, 2024

TYPE: enhancement

KEYWORDS: testing, compilation

SOURCE: internal

DESCRIPTION OF CHANGES:
Problem:
The testing frameworks (github actions nor Jenkins) don't run a wide array of compilation tests per compiler family commonly available.

Solution:
Use the github actions / hpc-workflows testing framework to run serial, sm, dm, and dm+sm for GNU, Intel Classic & OneAPI, and PGI/nvhpc on Derecho. Tests will run collectively in one node in parallel to maximize core hour allocations.

TESTS CONDUCTED:

  1. Tests can be run locally on Derecho by using the .ci/hpc-workflows runner.py to launch all tests as separate jobs, but this is inefficient and not exactly as the tests run. To emulate the tests as done in the github actions workflow use the additional args set in the respective testSet of .github/workflows/.ci.yml and provide alternate directories from which to compile. This can be facilitated via :
  • clone WRF branch that features these changes into <dir>
  • list names of tests you want space-delimited in variable, e.g. export tests="make-gnu-serial make-gnu-dm"
  • create copy test dirs with something like printf "%s\n" $tests | xargs -i -P 4 cp -Rp <dir> {}
  • Create alt dirs run locations from test definitions. In this case one directory up from each, this can be done with export altDirs=$( printf "../%s/.ci " $tests ) (note the extra space!)
  • launch tests using runner and join args along with -alt $altDirs
  • Final command should look like
<dir>/.ci/hpc-workflows/.ci/runner.py <dir>/.ci/wrf_compilation_tests-make.json -t $tests -a <account> -p <num parallel> -tp 1 -j='{"node_select":{"-l ":{"select":1}}}' -jn <job name> -alt $altDirs

@islas islas requested a review from a team as a code owner September 30, 2024 23:02
@weiwangncar
Copy link
Collaborator

The regression test results:

Test Type              | Expected  | Received |  Failed
= = = = = = = = = = = = = = = = = = = = = = = =  = = = =
Number of Tests        : 23           24
Number of Builds       : 60           57
Number of Simulations  : 158           150        0
Number of Comparisons  : 95           86        0

Failed Simulations are: 
None
Which comparisons are not bit-for-bit: 
None

@mgduda mgduda self-requested a review October 11, 2024 21:50
Copy link
Collaborator

@mgduda mgduda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me, and it's great to have compilation tests for several compilers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants