-
Notifications
You must be signed in to change notification settings - Fork 11
LDAS Regression Tests
The LDAS Regression Tests (formerly "Nightly" Tests) are a set of short, self-contained GEOSldas
runs that mimic important applications (e.g., SMAP L4_SM). The tests are implemented at NCCS only.
Objectives:
-
For GEOSldas development, the modified and original source code should generate test run output that is binary identical, if at all possible. If so, the modifications are considered "zero-diff" (see Pull Requests).
-
The test runs provide examples of GEOSldas configurations (skip to Step 2 below).
Any changes in the GEOSldas
, GEOSldas_GridComp
, or GEOSgcm_GridComp
repositories must be tested because GEOSldas
includes the GEOSldas_GridComp
and GEOSgcm_GridComp
repositories via GEOSldas/components.yaml
.
The reference runs for the tests use the respective develop
branches.
The LDAS tests also check for differences in model diagnostic output (incl. netcdf, binary, and text files), in addition to differences in restart/checkpoint files.
Suppose you have updates in one or more of the following branches:
-
b_mygeosldas
forGEOSldas
-
b_mygeosldasgridcomp
forGEOSldas_GridComp
-
b_mygeosgcmgridcomp
forGEOSgcm_GridComp
Make sure b_mygeosldas
, b_mygeosldasgridcomp
, and b_mygeosgcmgridcomp
have been pushed to GitHub.
If your modifications only impact GEOSldas
, make sure GEOSldas/components.yaml
points to the "develop" branches of GEOSldas_GridComp
and GEOSgcm_GridComp
.
If your modifications only impact GEOSldas_GridComp
and/or GEOSgcm_GridComp
:
- Create a new
GEOSldas
branchb_mygeosldas
off thedevelop
branch. - On the new branch, edit
GEOSldas/components.yaml
and pointGEOSldas_GridComp
and/orGEOSgcm_GridComp
to your branchesb_mygeosldasgridcomp
and/orb_mygeosgcmgridcomp
as follows:
[GEOSldas_GridComp]
...
branch = b_mygeosldasgridcomp
...
[GEOSgcm_GridComp]
...
branch = b_mygeosgcmgridcomp
- Commit and push to GitHub.
Ssh to a SLES15 login node: ssh discover-mil
. [NEW AS OF 27 AUG 2024!!!]
Make sure nccmp
is in your PATH: module load nccmp
.
Then run the following commands:
cd /discover/home/mathomp4/SI_Team/scripts/systest/
./LDAS_Regression.csh -b [branch] -e [email] -s [sponsor] -t conus -t global -t globalcs -t globalcnclm4
where [branch]
is your GEOSldas
branch (e.g., b_mygeosldas
),
[email]
is your email address, and
[sponsor]
is your NCCS sponsor code (e.g., g0610
).
The -t
arguments specify the specific set of tests that must be conducted by developers (see below for details).
IMPORTANT: The LDAS_Regression.csh
script can be executed with a subset of these tests, but -t conus
must always be selected as the first test because the script re-uses the checkout and build generated during the "conus" test.
To generate GEOSldas sample configurations, specify develop
or a tag/release name as your [branch]
. The tests are maintained to work and "pass" for the develop branch. For an older tag/release, the tests may "fail" the comparison if there were non-zero-diff changes, or they may not work at all if configuration details have changed. There may also be short periods when the tests fail the output comparison even for develop
or do not work at all because of ongoing maintenance of the tests.
Upon completion, the script will send an email to the address specified above with a summary of the test results. A typical test summary is shown here:
Full Log File: /discover/nobackup/[username]/SystemTests/logs/LDAS/[YYYY-MM-DD]/log.[HH:MM:SS]
Runtype Clone Build Build Time Model Run/Compare Assim Run/Compare
------- ----- ----- ---------- ----------------- -----------------
conus pass pass 17 min pass/pass -- / --
global -- -- -- pass/pass pass/pass
globalcs -- -- -- pass/pass pass/pass
globalcnclm4 -- -- -- pass/pass -- / --
See the "Full Log File" for additional information.
If 'FAIL' appears anywhere, the modifications are not zero-diff. Nonzero-diff results, even when unavoidable or intentional, require special approval from the modeling and land assimilation leads before they can be merged (see Pull Requests).
Occasionally, tests may fail because of issues with Discover or because the team is in the process of updating the test baseline. If you think this may happening, please check with the gatekeepers or the GMAO software infrastructure team.
The tests cover different aspects of GEOSldas:
- "conus" is a Catchment model simulation over the CONUS domain in the EASEv2 tile space.
- "global" is a global Catchment model simulation in the EASEv2 tile space, with the "assimilation" case testing GEOSldas as used in SMAP L4_SM.
- "globalcs" is a global Catchment model simulation and an assimilation case in the cube-sphere tile space.
- "globalcnclm4" is a global CatchmentCNCLM4 model simulation in the EASEv2 tile space.
Additional LDAS tests with debug, aggressive, and/or GNU-compiler builds are available (see /discover/nobackup/mathomp4/SystemTests/runs/
).