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

[develop] Update modulefiles to use spack-stack unified environment #740

Closed

Conversation

ulmononian
Copy link
Collaborator

@ulmononian ulmononian commented Apr 21, 2023

DESCRIPTION OF CHANGES:

This is currently work in progress meant to update the SRW modulefiles to use spack-stack unified environment. This relates to #572.

As spack-stack/1.3.0 has been released and the spack-stack Unified Environment (UE) has been installed on all supported platforms, modulefiles for these machines should be updated to use spack-stack in place of hpc-stack. A similar effort is being made in the UFS-WM with PR #1707, which should be updated/merged before adoption in the SRW. UE installation and (some) testing information can be found here

Currently, Cheyenne, Hera, Orion, Jet, Gaea and noaacloud modulefiles have been changed; the remaining machine updates will be committed in the near term. srw_common will need to be updated to use the module versions included in the UE (which are at least up-to-date or newer than the current srw_common modules). For now, an srw_common_spack module is used for testing.

Some additional modifications may be required (a few beta modifications are currently committed) for certain platforms outside of the modulefiles, such as in the machine files and various workflow scripts (e.g., due to MPI changes from mpich/MPT to impi/openmpi on some platforms). Further, due to conflicts with the current regional_workflow miniconda environment and the Python/miniconda used to build (and included as a meta-module within) spack-stack, the wflow_* modulefiles have been changed, but there is probably a better solution for this. In the meantime, all necessary Python packages pertinent to the regional_workflow are provided by loading ufs-pyenv (included w/ spack-stack UE) in the wflow_* modulefiles.

So far, this has been tested on Orion, Jet, Gaea, Hera, and Cheyenne (see #572, or spack-stack #503), but WE2E tests will be run on all supported machines in the coming week or so (with results to be reported here).

Community testing of the SRW against the spack-stack ue is highly encouraged and appreciated! Also, any and all feedback would be very much appreciated!

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • [x ] New feature (non-breaking change which adds functionality)
  • [x ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • [x ] This change requires a documentation update

TESTS CONDUCTED:

Fundamental WE2E tests were run on Orion, Cheyenne, Jet, Hera, and noaacloud. Testing on the other platforms is underway and status will be reported on here.

  • hera.intel
    /scratch1/NCEPDEV/stmp4/Cameron.Book/srw_ue/tests/WE2E/fundamental.intel
  • orion.intel
    /work2/noaa/epic-ps/cbook/ue_srw_testing/OUE/cbSRW_testUE/tests/fundamental.orion_tests
  • cheyenne.intel
    /glade/scratch/bcameron/sw/test_ue/run_post_debug/tests/WE2E/run_post_tests failure in run_post
  • cheyenne.gnu
  • gaea.intel
    /lustre/f2/dev/Cameron.Book/srw_ue/tests/WE2E/fundamental_gaea
  • jet.intel
    /lfs4/HFIP/hfv3gfs/Cameron.Book/sw/cbSRW-testUE/tests/WE2E/ue_intel
  • wcoss2.intel
  • NOAA Cloud (indicate which platform)
  • Jenkins
  • fundamental test suite
  • comprehensive tests (specify which if a subset was used)

DEPENDENCIES:

None, except ufs-community/ufs-weather-model#1707

DOCUMENTATION:

ISSUE:

#572

CHECKLIST

  • My code follows the style guidelines in the Contributor's Guide
  • I have performed a self-review of my own code using the Code Reviewer's Guide
  • I have commented my code, particularly in hard-to-understand areas
  • My changes need updates to the documentation. I have made corresponding changes to the documentation
  • My changes do not require updates to the documentation (explain).
  • My changes generate no new warnings
  • New and existing tests pass with my changes
  • Any dependent changes have been merged and published

LABELS (optional):

A Code Manager needs to add the following labels to this PR:

  • Work In Progress
  • bug
  • enhancement
  • documentation
  • release
  • high priority
  • run_ci
  • run_we2e_fundamental_tests
  • run_we2e_comprehensive_tests
  • Needs Cheyenne test
  • Needs Jet test
  • Needs Hera test
  • Needs Orion test
  • help wanted

CONTRIBUTORS (optional):

@MichaelLueken MichaelLueken changed the title Update modulefiles to use spack-stack unified environment [develop] Update modulefiles to use spack-stack unified environment Apr 21, 2023
@MichaelLueken MichaelLueken added enhancement New feature or request Work in Progress help wanted Extra attention is needed labels Apr 21, 2023
willmayfield pushed a commit to willmayfield/ufs-srweather-app that referenced this pull request May 1, 2023
…ity#740)

## DESCRIPTION OF CHANGES: 
The script/function `get_WE2Etest_names_subdirs_descs.sh` (which is called from `run_WE2E_tests.sh` if needed) creates a CSV (Comma-Separated Value) file named `WE2E_test_info.csv` that contains information about the WE2E tests.  Currently, this CSV file contains only 3 columns: the test name, the names of any alternate names for the test, and the test description.  In order to have a more complete summary of the WE2E tests, this PR modifies `get_WE2Etest_names_subdirs_descs.sh` so that additional information is included in the CSV file.  This additional information consists of the values of the following experiment variables for each test:
```
PREDEF_GRID_NAME
CCPP_PHYS_SUITE
EXTRN_MDL_NAME_ICS
EXTRN_MDL_NAME_LBCS
DATE_FIRST_CYCL
DATE_LAST_CYCL
CYCL_HRS
INCR_CYCL_FREQ
FCST_LEN_HRS
LBC_SPEC_INTVL_HRS
NUM_ENS_MEMBERS
```
In addition, the script uses this information to calculate the number of times each test calls the forecast model (e.g. if the test uses 3 different cycle dates, then the forecast model will be called 3 times; if it is an ensemble test for a single cycle, the test will call the forecast model as many times as the number of ensemble members).  

## TESTS CONDUCTED: 
The script `run_WE2E_tests.sh` was called that in turn calls `get_WE2Etest_names_subdirs_descs.sh`.  This created a new CSV file that contained the new fields (columns).  The CSV file was imported into Google Sheets (using "|" as the field/column separator) and looked correct.

## DOCUMENTATION:
The documentation is for the most part already within the `get_WE2Etest_names_subdirs_descs.sh`.  This PR slightly modifies that documentation to update it.
@natalie-perlin
Copy link
Collaborator

Another updated PR #913 is currently open for updating SRW to use spack-stack modules

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed Work in Progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants