From bd0b835071d168d93eb335edd4db18e6fbd18f5d Mon Sep 17 00:00:00 2001 From: David Huber Date: Fri, 7 Mar 2025 10:06:23 -0600 Subject: [PATCH 01/19] Update tracker version to 1.2.0 --- versions/run.gaeac6.ver | 2 -- versions/spack.ver | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/versions/run.gaeac6.ver b/versions/run.gaeac6.ver index fc52d698b97..5bb817aa899 100644 --- a/versions/run.gaeac6.ver +++ b/versions/run.gaeac6.ver @@ -11,6 +11,4 @@ source "${HOMEgfs:-}/versions/spack.ver" # Gaea uses a newer version of Fit2Obs export fit2obs_ver=1.1.5 -# Gaea uses a newer version of the ensemble tracker as well -export ens_tracker_ver=v1.2.0 export spack_mod_path="/ncrc/proj/epic/spack-stack/c6/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core" diff --git a/versions/spack.ver b/versions/spack.ver index 1f553134f00..8b7ca84d771 100644 --- a/versions/spack.ver +++ b/versions/spack.ver @@ -43,5 +43,5 @@ export py_xarray_ver=2023.7.0 export obsproc_run_ver=1.2.0 export prepobs_run_ver=1.1.0 -export ens_tracker_ver=feature-GFSv17_com_reorg +export ens_tracker_ver=v1.2.0 export fit2obs_ver=1.1.4 From 8deda29fb93de62d0dc66e333fd91ed194db3acf Mon Sep 17 00:00:00 2001 From: David Huber Date: Mon, 10 Mar 2025 15:28:33 +0000 Subject: [PATCH 02/19] Re-enable tracker/genesis on Orion and Hercules --- workflow/hosts/hercules.yaml | 2 -- workflow/hosts/orion.yaml | 2 -- 2 files changed, 4 deletions(-) diff --git a/workflow/hosts/hercules.yaml b/workflow/hosts/hercules.yaml index 518756b66aa..b8c1d89a054 100644 --- a/workflow/hosts/hercules.yaml +++ b/workflow/hosts/hercules.yaml @@ -21,8 +21,6 @@ LOCALARCH: 'NO' ATARDIR: '${NOSCRUB}/archive_rotdir/${PSLOT}' MAKE_NSSTBUFR: 'NO' MAKE_ACFTBUFR: 'NO' -DO_TRACKER: 'NO' -DO_GENESIS: 'NO' DO_AWIPS: 'NO' SUPPORTED_RESOLUTIONS: ['C1152', 'C768', 'C384', 'C192', 'C96', 'C48'] COMINecmwf: /work/noaa/global/glopara/data/external_gempak/ecmwf diff --git a/workflow/hosts/orion.yaml b/workflow/hosts/orion.yaml index 964019df36e..1c559a3f968 100644 --- a/workflow/hosts/orion.yaml +++ b/workflow/hosts/orion.yaml @@ -21,8 +21,6 @@ LOCALARCH: 'NO' ATARDIR: '${NOSCRUB}/archive_rotdir/${PSLOT}' MAKE_NSSTBUFR: 'NO' MAKE_ACFTBUFR: 'NO' -DO_TRACKER: 'NO' -DO_GENESIS: 'NO' DO_AWIPS: 'NO' SUPPORTED_RESOLUTIONS: ['C1152', 'C768', 'C384', 'C192', 'C96', 'C48'] COMINecmwf: /work/noaa/global/glopara/data/external_gempak/ecmwf From 89930d114978517d655e5176a657733f266f335a Mon Sep 17 00:00:00 2001 From: David Huber Date: Mon, 10 Mar 2025 10:32:05 -0500 Subject: [PATCH 03/19] Update git paths on MSU --- workflow/hosts/hercules.yaml | 2 +- workflow/hosts/orion.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/hosts/hercules.yaml b/workflow/hosts/hercules.yaml index 24a7e5d6b79..69f4db4fc68 100644 --- a/workflow/hosts/hercules.yaml +++ b/workflow/hosts/hercules.yaml @@ -1,4 +1,4 @@ -BASE_GIT: '/work/noaa/global/glopara/git_rocky9' +BASE_GIT: '/work2/noaa/global/role-global/git' DMPDIR: '/work/noaa/rstprod/dump' BASE_DATA: '/work/noaa/global/glopara/data' BASE_IC: '/work/noaa/global/glopara/data/ICSDIR' diff --git a/workflow/hosts/orion.yaml b/workflow/hosts/orion.yaml index 562deb7cb65..a7b875a6894 100644 --- a/workflow/hosts/orion.yaml +++ b/workflow/hosts/orion.yaml @@ -1,4 +1,4 @@ -BASE_GIT: '/work/noaa/global/glopara/git_rocky9' +BASE_GIT: '/work2/noaa/global/role-global/git' DMPDIR: '/work/noaa/rstprod/dump' BASE_DATA: '/work/noaa/global/glopara/data' BASE_IC: '/work/noaa/global/glopara/data/ICSDIR' From 2c932117481f19b645ccc2ad28167e092bbd8f7f Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Mon, 10 Mar 2025 10:58:54 -0500 Subject: [PATCH 04/19] Update glopara paths to new role-global space Refs #3203 --- workflow/hosts/hercules.yaml | 18 +++++++++--------- workflow/hosts/orion.yaml | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/workflow/hosts/hercules.yaml b/workflow/hosts/hercules.yaml index 9000cf7c6cb..906f2cda26e 100644 --- a/workflow/hosts/hercules.yaml +++ b/workflow/hosts/hercules.yaml @@ -1,9 +1,9 @@ -BASE_GIT: '/work/noaa/global/glopara/git_rocky9' +BASE_GIT: '/work2/noaa/global/role-global/git' DMPDIR: '/work/noaa/rstprod/dump' -BASE_DATA: '/work/noaa/global/glopara/data' -BASE_IC: '/work/noaa/global/glopara/data/ICSDIR' -PACKAGEROOT: '/work/noaa/global/glopara/nwpara' -COMINsyn: '/work/noaa/global/glopara/com/gfs/prod/syndat' +BASE_DATA: '/work2/noaa/global/role-global/data' +BASE_IC: '/work2/noaa/global/role-global/data/ICSDIR' +PACKAGEROOT: '/work2/noaa/global/role-global/nwpara' +COMINsyn: '/work2/noaa/global/role-global/com/gfs/prod/syndat' HOMEDIR: '/work/noaa/global/${USER}' STMP: '/work/noaa/stmp/${USER}/HERCULES' PTMP: '/work/noaa/stmp/${USER}/HERCULES' @@ -26,8 +26,8 @@ DO_TRACKER: 'NO' DO_GENESIS: 'NO' DO_AWIPS: 'NO' SUPPORTED_RESOLUTIONS: ['C1152', 'C768', 'C384', 'C192', 'C96', 'C48'] -COMINecmwf: /work/noaa/global/glopara/data/external_gempak/ecmwf -COMINnam: /work/noaa/global/glopara/data/external_gempak/nam -COMINukmet: /work/noaa/global/glopara/data/external_gempak/ukmet -AERO_INPUTS_DIR: /work2/noaa/global/wkolczyn/noscrub/global-workflow/gocart_emissions +COMINecmwf: '/work2/noaa/global/role-global/data/external_gempak/ecmwf' +COMINnam: '/work2/noaa/global/role-global/data/external_gempak/nam' +COMINukmet: '/work2/noaa/global/role-global/data/external_gempak/ukmet' +AERO_INPUTS_DIR: '/work2/noaa/global/role-global/data/gocart_emissions' CLIENT_GLOBUS_UUID: '869912fe-f6de-46c0-af10-b22efd84a022' diff --git a/workflow/hosts/orion.yaml b/workflow/hosts/orion.yaml index f1ef2c8b944..23e2de9dbfa 100644 --- a/workflow/hosts/orion.yaml +++ b/workflow/hosts/orion.yaml @@ -1,9 +1,9 @@ -BASE_GIT: '/work/noaa/global/glopara/git_rocky9' +BASE_GIT: '/work2/noaa/global/role-global/git' DMPDIR: '/work/noaa/rstprod/dump' -BASE_DATA: '/work/noaa/global/glopara/data' -BASE_IC: '/work/noaa/global/glopara/data/ICSDIR' -PACKAGEROOT: '/work/noaa/global/glopara/nwpara' -COMINsyn: '/work/noaa/global/glopara/com/gfs/prod/syndat' +BASE_DATA: '/work2/noaa/global/role-global/data' +BASE_IC: '/work2/noaa/global/role-global/data/ICSDIR' +PACKAGEROOT: '/work2/noaa/global/role-global/nwpara' +COMINsyn: '/work2/noaa/global/role-global/com/gfs/prod/syndat' HOMEDIR: '/work/noaa/global/${USER}' STMP: '/work/noaa/stmp/${USER}/ORION' PTMP: '/work/noaa/stmp/${USER}/ORION' @@ -26,8 +26,8 @@ DO_TRACKER: 'NO' DO_GENESIS: 'NO' DO_AWIPS: 'NO' SUPPORTED_RESOLUTIONS: ['C1152', 'C768', 'C384', 'C192', 'C96', 'C48'] -COMINecmwf: /work/noaa/global/glopara/data/external_gempak/ecmwf -COMINnam: /work/noaa/global/glopara/data/external_gempak/nam -COMINukmet: /work/noaa/global/glopara/data/external_gempak/ukmet -AERO_INPUTS_DIR: /work2/noaa/global/wkolczyn/noscrub/global-workflow/gocart_emissions +COMINecmwf: '/work2/noaa/global/role-global/data/external_gempak/ecmwf' +COMINnam: '/work2/noaa/global/role-global/data/external_gempak/nam' +COMINukmet: '/work2/noaa/global/role-global/data/external_gempak/ukmet' +AERO_INPUTS_DIR: '/work2/noaa/global/role-global/data/gocart_emissions' CLIENT_GLOBUS_UUID: '869912fe-f6de-46c0-af10-b22efd84a022' From 69d86c40a41b2c47ba0108831591734288d0aad3 Mon Sep 17 00:00:00 2001 From: David Huber Date: Tue, 11 Mar 2025 11:02:00 -0400 Subject: [PATCH 05/19] Enable HPSS on C5/6; add constaint option to tasks.py --- workflow/hosts/gaeac5.yaml | 1 + workflow/hosts/gaeac6.yaml | 8 ++++---- workflow/rocoto/tasks.py | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/workflow/hosts/gaeac5.yaml b/workflow/hosts/gaeac5.yaml index 7746c630376..45a4034de85 100644 --- a/workflow/hosts/gaeac5.yaml +++ b/workflow/hosts/gaeac5.yaml @@ -19,6 +19,7 @@ PARTITION_DTN: 'dtn_f5_f6' RESERVATION: '' CLUSTERS: 'c5' CLUSTERS_DTN: 'es' +CONSTRAINT_DTN: 'f5' CHGRP_RSTPROD: 'NO' CHGRP_CMD: 'chgrp rstprod' HPSS_PROJECT: emc-global diff --git a/workflow/hosts/gaeac6.yaml b/workflow/hosts/gaeac6.yaml index 052a13719b8..c95332e8435 100644 --- a/workflow/hosts/gaeac6.yaml +++ b/workflow/hosts/gaeac6.yaml @@ -20,13 +20,13 @@ PARTITION_CRON: 'cron_c6' RESERVATION: '' CLUSTERS: 'c6' CLUSTERS_DTN: 'es' +CONSTRAINT_DTN: 'f6' CHGRP_RSTPROD: 'NO' CHGRP_CMD: 'chgrp rstprod' HPSS_PROJECT: emc-global -# TODO enable HPSS archiving by default when DTN/f6 sluggishness is resolved -DO_ARCHCOM: 'NO' -ARCHCOM_TO: 'local' -ATARDIR: '${NOSCRUB}/archive_rotdir/${PSLOT}' +DO_ARCHCOM: 'YES' +ARCHCOM_TO: 'hpss' +ATARDIR: '/NCEPDEV/${HPSS_PROJECT}/1year/${USER}/${machine}/scratch/${PSLOT}' MAKE_NSSTBUFR: 'NO' MAKE_ACFTBUFR: 'NO' DO_TRACKER: 'YES' diff --git a/workflow/rocoto/tasks.py b/workflow/rocoto/tasks.py index 8109ceef434..7723ce8573d 100644 --- a/workflow/rocoto/tasks.py +++ b/workflow/rocoto/tasks.py @@ -119,6 +119,10 @@ def _validate_system_key(input_dict, key): self.queue_service = _validate_system_key(base, 'QUEUE_SERVICE') self.queue_dtn = _validate_system_key(base, 'QUEUE_DTN') + self.constraint_batch = _validate_system_key(base, 'CONSTRAINT') + self.constraint_service = _validate_system_key(base, 'CONSTRAINT_SERVICE') + self.constraint_dtn = _validate_system_key(base, 'CONSTRAINT_DTN') + def _template_to_rocoto_cycstring(self, template: str, subs_dict: dict = {}) -> str: ''' Takes a string templated with ${ } and converts it into a string suitable @@ -363,6 +367,7 @@ def get_resource(self, task_name): task_queue = self.queue_service if self.queue_service else self.queue_batch task_partition = self.partition_service if self.partition_service else self.partition_batch task_clusters = self.clusters_service if self.clusters_service else self.clusters_batch + task_constraint = self.constraint_service if self.constraint_service else self.constraint_batch task_reservation = None # Reservations are only for batch nodes elif dtn_task: # First check if there is a DTN queue, partition, or clusters @@ -388,12 +393,20 @@ def get_resource(self, task_name): else: task_clusters = self.clusters_batch + if self.constraint_dtn: + task_constraint = self.constraint_dtn + elif self.constraint_service: + task_constraint = self.constraint_service + else: + task_constraint = self.constraint_batch + task_reservation = None else: # This is a batch task task_partition = self.partition_batch task_queue = self.queue_batch task_clusters = self.clusters_batch + task_constraint = self.constraint_batch task_reservation = self.reservation_batch # Scheduler-specific configurations @@ -428,6 +441,9 @@ def get_resource(self, task_name): if task_clusters: native += ' --clusters=' + task_clusters + if task_constraint: + native += ' --constraint=' + task_constraint + # Finally, construct and return the task resource dictionary task_resource = {'account': account, 'walltime': walltime, From 358374599586edd24a1ff73a92ceed450caeef78 Mon Sep 17 00:00:00 2001 From: David Huber Date: Tue, 11 Mar 2025 11:16:52 -0400 Subject: [PATCH 06/19] Remove obsolete note about scrontab on gaea --- workflow/generate_workflows.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/workflow/generate_workflows.sh b/workflow/generate_workflows.sh index e6d4e0493c8..d734e14f7e5 100755 --- a/workflow/generate_workflows.sh +++ b/workflow/generate_workflows.sh @@ -54,8 +54,6 @@ function _usage() { If this option is not chosen, the new entries that would have been written to your crontab will be printed to stdout. NOTES: - - This option is not supported on Gaea. Instead, the output will - need to be written to scrontab manually. - For Orion/Hercules, this option will not work unless run on the [orion|hercules]-login-1 head node. From 22f70c7052a5f9c9259876b2b5390ddd0d076686 Mon Sep 17 00:00:00 2001 From: David Huber Date: Tue, 11 Mar 2025 12:49:45 -0400 Subject: [PATCH 07/19] Fix arch_tars dependency to prevent early cleanup --- workflow/rocoto/gfs_tasks.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/workflow/rocoto/gfs_tasks.py b/workflow/rocoto/gfs_tasks.py index 0f21fa83f3f..d311923667d 100644 --- a/workflow/rocoto/gfs_tasks.py +++ b/workflow/rocoto/gfs_tasks.py @@ -2523,8 +2523,7 @@ def cleanup(self): pass else: dep_dict = {'type': 'metatask', 'name': f'{self.run}_earc_tars'} - - deps.append(rocoto.add_dependency(dep_dict)) + deps.append(rocoto.add_dependency(dep_dict)) else: if self.app_config.mode in ['cycled']: @@ -2627,12 +2626,16 @@ def cleanup(self): dep_dict = {'type': 'task', 'name': f'{self.run}_arch_vrfy'} deps.append(rocoto.add_dependency(dep_dict)) + print('arcom?', self.options['do_archcom']) + if self.options['do_archcom']: if self.options['do_globusarch']: dep_dict = {'type': 'task', 'name': f'{self.run}_globus_arch'} else: dep_dict = {'type': 'task', 'name': f'{self.run}_arch_tars'} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) resources = self.get_resource('cleanup') From ae7385c8bd67ec85bc07fcd6ee47ab4c09881c19 Mon Sep 17 00:00:00 2001 From: David Huber Date: Wed, 12 Mar 2025 12:30:33 -0400 Subject: [PATCH 08/19] Correct location of lmod init script on C6 --- ush/module-setup.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/ush/module-setup.sh b/ush/module-setup.sh index 158efd25690..0b2ffae4c9c 100755 --- a/ush/module-setup.sh +++ b/ush/module-setup.sh @@ -69,13 +69,23 @@ elif [[ ${MACHINE_ID} = stampede* ]] ; then fi module purge -elif [[ ${MACHINE_ID} = gaea* ]] ; then - # We are on GAEA. +elif [[ ${MACHINE_ID} = gaeac5 ]] ; then + # We are on GAEA C5. if ( ! eval module help > /dev/null 2>&1 ) ; then - source /usr/share/lmod/lmod/init/bash + # We cannot simply load the module command. The GAEA + # /etc/profile modifies a number of module-related variables + # before loading the module command. Without those variables, + # the module command fails. Hence we actually have to source + # /etc/profile here. source /etc/profile fi module reset +elif [[ ${MACHINE_ID} = gaeac6 ]]; then + # We are on GAEA C6. + if ( ! eval module help > /dev/null 2>&1 ) ; then + source /opt/cray/pe/lmod/lmod/init/bash + fi + module reset elif [[ ${MACHINE_ID} = expanse* ]]; then # We are on SDSC Expanse From 5df36b2e0b17c7417ca5e642444a9214aed9131e Mon Sep 17 00:00:00 2001 From: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com> Date: Thu, 13 Mar 2025 10:35:08 -0400 Subject: [PATCH 09/19] Remove debug print statement --- workflow/rocoto/gfs_tasks.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/workflow/rocoto/gfs_tasks.py b/workflow/rocoto/gfs_tasks.py index d311923667d..5cd4afdfb4c 100644 --- a/workflow/rocoto/gfs_tasks.py +++ b/workflow/rocoto/gfs_tasks.py @@ -2626,8 +2626,6 @@ def cleanup(self): dep_dict = {'type': 'task', 'name': f'{self.run}_arch_vrfy'} deps.append(rocoto.add_dependency(dep_dict)) - print('arcom?', self.options['do_archcom']) - if self.options['do_archcom']: if self.options['do_globusarch']: dep_dict = {'type': 'task', 'name': f'{self.run}_globus_arch'} From 8f8c4814d90735d484d2fe29a81453ed810a6c83 Mon Sep 17 00:00:00 2001 From: "kate.friedman" Date: Thu, 13 Mar 2025 12:10:42 -0500 Subject: [PATCH 10/19] Update prepobs and fit2obs paths for role-global Refs #3203 --- modulefiles/module_base.hercules.lua | 4 ++-- modulefiles/module_base.orion.lua | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modulefiles/module_base.hercules.lua b/modulefiles/module_base.hercules.lua index cb0700201f6..dbc77c2e62f 100644 --- a/modulefiles/module_base.hercules.lua +++ b/modulefiles/module_base.hercules.lua @@ -44,10 +44,10 @@ setenv("UTILROOT",(os.getenv("prod_util_ROOT") or "None")) -- Set the path for the Sven executables append_path("PATH", pathJoin((os.getenv("sven_root_path") or "None"), "bin")) -prepend_path("MODULEPATH", pathJoin("/work/noaa/global/glopara/git_rocky9/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles")) +prepend_path("MODULEPATH", pathJoin("/work2/noaa/global/role-global/git/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles")) load(pathJoin("prepobs", (os.getenv("prepobs_run_ver") or "None"))) -prepend_path("MODULEPATH", pathJoin("/work/noaa/global/glopara/git_rocky9/Fit2Obs/v" .. (os.getenv("fit2obs_ver") or "None"), "modulefiles")) +prepend_path("MODULEPATH", pathJoin("/work2/noaa/global/role-global/git/Fit2Obs/v" .. (os.getenv("fit2obs_ver") or "None"), "modulefiles")) load(pathJoin("fit2obs", (os.getenv("fit2obs_ver") or "None"))) load("globus-cli") diff --git a/modulefiles/module_base.orion.lua b/modulefiles/module_base.orion.lua index 003dfe8c32b..ca25f97c2fd 100644 --- a/modulefiles/module_base.orion.lua +++ b/modulefiles/module_base.orion.lua @@ -43,10 +43,10 @@ setenv("UTILROOT",(os.getenv("prod_util_ROOT") or "None")) -- Set the path for the Sven executables append_path("PATH", pathJoin((os.getenv("sven_root_path") or "None"), "bin")) -prepend_path("MODULEPATH", pathJoin("/work/noaa/global/glopara/git_rocky9/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles")) +prepend_path("MODULEPATH", pathJoin("/work2/noaa/global/role-global/git/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles")) load(pathJoin("prepobs", (os.getenv("prepobs_run_ver") or "None"))) -prepend_path("MODULEPATH", pathJoin("/work/noaa/global/glopara/git_rocky9/Fit2Obs/v" .. (os.getenv("fit2obs_ver") or "None"), "modulefiles")) +prepend_path("MODULEPATH", pathJoin("/work2/noaa/global/role-global/git/Fit2Obs/v" .. (os.getenv("fit2obs_ver") or "None"), "modulefiles")) load(pathJoin("fit2obs", (os.getenv("fit2obs_ver") or "None"))) load("globus-cli") From 177b2ed307c66a63c24987046b6a6eab7f1d5641 Mon Sep 17 00:00:00 2001 From: David Huber Date: Fri, 14 Mar 2025 14:04:02 -0400 Subject: [PATCH 11/19] Increase C768 analysis resources for C6 --- parm/config/gfs/config.resources.GAEAC6 | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/parm/config/gfs/config.resources.GAEAC6 b/parm/config/gfs/config.resources.GAEAC6 index 97fed78f8a1..26947e029de 100644 --- a/parm/config/gfs/config.resources.GAEAC6 +++ b/parm/config/gfs/config.resources.GAEAC6 @@ -33,6 +33,17 @@ case ${step} in esac export tasks_per_node=$(( max_tasks_per_node / threads_per_task )) ;; + + "anal") + if [[ "${CASE}" == "C768" || "${CASE}" == "C1152" ]]; then + export threads_per_task=8 + # Make ntasks a multiple of 16 + export ntasks_gdas=784 + export ntasks_gfs=832 + export tasks_per_node=$(( max_tasks_per_node / threads_per_task )) + fi + ;; *) + ;; esac From c17f90565d2ab4eaba448d1785f0abef2edec6d7 Mon Sep 17 00:00:00 2001 From: David Huber Date: Tue, 18 Mar 2025 11:22:51 +0000 Subject: [PATCH 12/19] Update the fit2obs version --- versions/spack.ver | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/spack.ver b/versions/spack.ver index 8b7ca84d771..43236d39122 100644 --- a/versions/spack.ver +++ b/versions/spack.ver @@ -44,4 +44,4 @@ export obsproc_run_ver=1.2.0 export prepobs_run_ver=1.1.0 export ens_tracker_ver=v1.2.0 -export fit2obs_ver=1.1.4 +export fit2obs_ver=1.1.5 From 21276026d01ae8c228aa898bb7da7a5157b6e362 Mon Sep 17 00:00:00 2001 From: David Huber Date: Tue, 18 Mar 2025 11:24:16 +0000 Subject: [PATCH 13/19] Update verif-global tag to include Gaea support --- sorc/verif-global.fd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/verif-global.fd b/sorc/verif-global.fd index b2ee80cac79..ecb31f4575d 160000 --- a/sorc/verif-global.fd +++ b/sorc/verif-global.fd @@ -1 +1 @@ -Subproject commit b2ee80cac7921a3016fa5a857cc58acfccc4baea +Subproject commit ecb31f4575d86e9ce50495682adb550992ccfc6a From d50b6d1018eeee05bbc1aaa8164256a70e619920 Mon Sep 17 00:00:00 2001 From: David Huber Date: Tue, 18 Mar 2025 11:25:11 +0000 Subject: [PATCH 14/19] Reenable METplus on Hera --- workflow/hosts/hera.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/workflow/hosts/hera.yaml b/workflow/hosts/hera.yaml index f7dceaedd4d..8ad9965c7ca 100644 --- a/workflow/hosts/hera.yaml +++ b/workflow/hosts/hera.yaml @@ -27,5 +27,3 @@ COMINecmwf: /scratch1/NCEPDEV/global/glopara/data/external_gempak/ecmwf COMINnam: /scratch1/NCEPDEV/global/glopara/data/external_gempak/nam COMINukmet: /scratch1/NCEPDEV/global/glopara/data/external_gempak/ukmet AERO_INPUTS_DIR: /scratch1/NCEPDEV/global/glopara/data/gocart_emissions -# TODO Reenable when RDHPCS#2025022654000078 is resolved -DO_METP: 'NO' From 99a803b98cd6f8af808325bc9e157850180096a4 Mon Sep 17 00:00:00 2001 From: David Huber Date: Tue, 18 Mar 2025 11:33:43 +0000 Subject: [PATCH 15/19] Let gaeac6 inherit the default fit2obs version --- versions/run.gaeac6.ver | 2 -- 1 file changed, 2 deletions(-) diff --git a/versions/run.gaeac6.ver b/versions/run.gaeac6.ver index 5bb817aa899..f9ac46de709 100644 --- a/versions/run.gaeac6.ver +++ b/versions/run.gaeac6.ver @@ -9,6 +9,4 @@ export hsi_ver=9.3 source "${HOMEgfs:-}/versions/spack.ver" -# Gaea uses a newer version of Fit2Obs -export fit2obs_ver=1.1.5 export spack_mod_path="/ncrc/proj/epic/spack-stack/c6/spack-stack-${spack_stack_ver}/envs/${spack_env}/install/modulefiles/Core" From 6c3f8fc0fd7041de203970691e42a40eced77c04 Mon Sep 17 00:00:00 2001 From: David Huber Date: Tue, 18 Mar 2025 11:37:48 +0000 Subject: [PATCH 16/19] Update capabilities matrix for C5/6. --- docs/source/hpc.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/hpc.rst b/docs/source/hpc.rst index f1720893479..55e3e603bc7 100644 --- a/docs/source/hpc.rst +++ b/docs/source/hpc.rst @@ -144,7 +144,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas - - - - - + - X - X * - Gaea C6 - 1 @@ -158,7 +158,7 @@ The Global Workflow provides capabilities for deterministic and ensemble forecas - - - X - - + - X - X * - AWS (PW) - 3 From 96da1503507a9545d27f274994e11f0db602bee1 Mon Sep 17 00:00:00 2001 From: David Huber Date: Tue, 18 Mar 2025 12:48:17 +0000 Subject: [PATCH 17/19] Update GIT path in module_base for hercules --- modulefiles/module_base.hercules.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modulefiles/module_base.hercules.lua b/modulefiles/module_base.hercules.lua index cb0700201f6..dbc77c2e62f 100644 --- a/modulefiles/module_base.hercules.lua +++ b/modulefiles/module_base.hercules.lua @@ -44,10 +44,10 @@ setenv("UTILROOT",(os.getenv("prod_util_ROOT") or "None")) -- Set the path for the Sven executables append_path("PATH", pathJoin((os.getenv("sven_root_path") or "None"), "bin")) -prepend_path("MODULEPATH", pathJoin("/work/noaa/global/glopara/git_rocky9/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles")) +prepend_path("MODULEPATH", pathJoin("/work2/noaa/global/role-global/git/prepobs/v" .. (os.getenv("prepobs_run_ver") or "None"), "modulefiles")) load(pathJoin("prepobs", (os.getenv("prepobs_run_ver") or "None"))) -prepend_path("MODULEPATH", pathJoin("/work/noaa/global/glopara/git_rocky9/Fit2Obs/v" .. (os.getenv("fit2obs_ver") or "None"), "modulefiles")) +prepend_path("MODULEPATH", pathJoin("/work2/noaa/global/role-global/git/Fit2Obs/v" .. (os.getenv("fit2obs_ver") or "None"), "modulefiles")) load(pathJoin("fit2obs", (os.getenv("fit2obs_ver") or "None"))) load("globus-cli") From 784d946592f2bd00aa2034b127c8807e23144a22 Mon Sep 17 00:00:00 2001 From: David Huber Date: Tue, 18 Mar 2025 13:26:24 +0000 Subject: [PATCH 18/19] Update tracker/fit2obs versions on WCOSS2 --- versions/run.wcoss2.ver | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/versions/run.wcoss2.ver b/versions/run.wcoss2.ver index 612358616c8..5efa181505f 100644 --- a/versions/run.wcoss2.ver +++ b/versions/run.wcoss2.ver @@ -48,7 +48,7 @@ export metplus_ver=3.1.1 export obsproc_run_ver=1.2.0 export prepobs_run_ver=1.1.0 -export ens_tracker_ver=feature-GFSv17_com_reorg -export fit2obs_ver=1.1.4 +export ens_tracker_ver=v1.2.0 +export fit2obs_ver=1.1.5 export mos_ver=5.4.3 export mos_shared_ver=2.7.2 From a8c694b8372e3b2f3dda3182023a793b10ff9407 Mon Sep 17 00:00:00 2001 From: David Huber Date: Tue, 18 Mar 2025 18:03:17 +0000 Subject: [PATCH 19/19] Use if block instead of _RUN for C6 analysis tasks --- parm/config/gfs/config.resources.GAEAC6 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/parm/config/gfs/config.resources.GAEAC6 b/parm/config/gfs/config.resources.GAEAC6 index 26947e029de..349a2e2be60 100644 --- a/parm/config/gfs/config.resources.GAEAC6 +++ b/parm/config/gfs/config.resources.GAEAC6 @@ -38,8 +38,11 @@ case ${step} in if [[ "${CASE}" == "C768" || "${CASE}" == "C1152" ]]; then export threads_per_task=8 # Make ntasks a multiple of 16 - export ntasks_gdas=784 - export ntasks_gfs=832 + if [[ "${RUN}" == "gdas" ]]; then + export ntasks=784 + elif [[ "${RUN}" == "gfs" ]]; then + export ntasks=832 + fi export tasks_per_node=$(( max_tasks_per_node / threads_per_task )) fi ;;