From a443fd183ab3b802832d5d0bc5082e84b30951d0 Mon Sep 17 00:00:00 2001 From: David Huber <69919478+DavidHuber-NOAA@users.noreply.github.com> Date: Fri, 27 Sep 2024 00:23:48 -0400 Subject: [PATCH 1/2] Enable parallel metp jobs and fix race condition with the gfscleanup job (#2907) This brings in a change to EMC_verif-global that offsets the start time of parallel instances when running metp jobs. This prevents Python from attempting to create the same directory in multiple instances. Simultaneously, this also fixes an issue with the `gfscleanup` job potentially running before the `metp` jobs. Resolves #2906 Resolves #2899 --- parm/archive/enkf.yaml.j2 | 2 +- parm/config/gfs/config.resources | 4 ++-- sorc/verif-global.fd | 2 +- workflow/rocoto/gfs_tasks.py | 8 ++++++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/parm/archive/enkf.yaml.j2 b/parm/archive/enkf.yaml.j2 index a95046d4d6..89fd44500b 100644 --- a/parm/archive/enkf.yaml.j2 +++ b/parm/archive/enkf.yaml.j2 @@ -27,7 +27,7 @@ enkf: {% else %} {% set steps = ["eobs", "eupd"] %} {% for mem in range(1, nmem_ens + 1) %} - {% do steps.append("eomg_mem{{ '%03d' % mem }}") %} + {% do steps.append("eomg_mem" ~ '%03d' % mem) %} {% endfor %} {% endif %} {% endif %} diff --git a/parm/config/gfs/config.resources b/parm/config/gfs/config.resources index d512f1f885..5024bc8873 100644 --- a/parm/config/gfs/config.resources +++ b/parm/config/gfs/config.resources @@ -988,8 +988,8 @@ case ${step} in threads_per_task=1 walltime_gdas="03:00:00" walltime_gfs="06:00:00" - ntasks=1 - tasks_per_node=1 + ntasks=4 + tasks_per_node=4 export memory="80G" ;; diff --git a/sorc/verif-global.fd b/sorc/verif-global.fd index 92904d2c43..e7e6bc4358 160000 --- a/sorc/verif-global.fd +++ b/sorc/verif-global.fd @@ -1 +1 @@ -Subproject commit 92904d2c431969345968f74e676717057ec0042a +Subproject commit e7e6bc43584e0b8911819b8f875cc8ee747db76d diff --git a/workflow/rocoto/gfs_tasks.py b/workflow/rocoto/gfs_tasks.py index ab972ad08b..6b9d6358c6 100644 --- a/workflow/rocoto/gfs_tasks.py +++ b/workflow/rocoto/gfs_tasks.py @@ -855,8 +855,8 @@ def fcst(self): try: task = fcst_map[self.app_config.mode]() except KeyError: - raise NotImplementedError(f'{self.app_config.mode} is not a valid type.\n' + - 'Currently supported forecast types are:\n' + + raise NotImplementedError(f'{self.app_config.mode} is not a valid type.\n' + f'Currently supported forecast types are:\n' f'{" | ".join(fcst_map.keys())}') return task @@ -2330,6 +2330,10 @@ def cleanup(self): dep_dict = {'type': 'task', 'name': f'{self.run}npoess_pgrb2_0p5deg'} deps.append(rocoto.add_dependency(dep_dict)) + if self.app_config.do_metp and self.run in ['gfs']: + dep_dict = {'type': 'metatask', 'name': f'{self.run}metp'} + deps.append(rocoto.add_dependency(dep_dict)) + dependencies = rocoto.create_dependency(dep_condition='and', dep=deps) resources = self.get_resource('cleanup') From 386aa6dcb8ebbe37c2efda419d5ccae46ed20cdd Mon Sep 17 00:00:00 2001 From: Walter Kolczynski - NOAA Date: Fri, 27 Sep 2024 00:46:44 -0400 Subject: [PATCH 2/2] Add GDA request template (#2948) Add a new issue template for GDA requests --- .github/ISSUE_TEMPLATE/dump_request.yml | 37 +++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/dump_request.yml diff --git a/.github/ISSUE_TEMPLATE/dump_request.yml b/.github/ISSUE_TEMPLATE/dump_request.yml new file mode 100644 index 0000000000..4481e7f6e0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/dump_request.yml @@ -0,0 +1,37 @@ +name: Global Observation Dump Request +description: Request additional dates be added to a machine's global dump archive (GDA) or introduce experimental dump data to the GDA +labels: ["Static Data Mgmt"] +assignees: + - KateFriedman-NOAA + - WalterKolczynski-NOAA + +body: + - type: dropdown + attributes: + label: Machine + options: + - WCOSS2 + - Hera/Ursa + - Orion/Hercules + - Jet + multiple: true + validations: + required: true + + - type: input + attributes: + label: Start date + validations: + required: true + + - type: input + attributes: + label: End date + validations: + required: true + + - type: textarea + attributes: + label: Additional information + placeholder: | + Any additional information needed (experimental obs, etc.)