jimfrimel / jfHWRF

My HWRF repository for tracking issues and tasks.
0 stars 0 forks source link

workflow CYCLE_THROTTLE and uncoupled_forecast walltime #7

Open jimfrimel opened 5 years ago

jimfrimel commented 5 years ago

Modify CYCLE_THROTTLE and uncoupled_forecast walltime to work with both the ICDA requirements and current trunk settings.

jimfrimel commented 4 years ago

This has been fixed with the following changes below.

r6660 | james.t.frimel@noaa.gov | 2020-05-20 22:19:25 +0000 (Wed, 20 May 2020) | 36 lines

Branch commit

This is an interim commit to address the CYCLE_THROTTLE and FORECAST_WALLTIME Entitiy variable settings for the intercycle DA branch, and 'should' work and address the two issues describe below.

The issues: one. When running intercyles the CYCLE_THROTTLE needs to be set to 8, at the moment, I don't recall exactly why that is.

two. The intercycle FORECAST_WALLTIME was hard coded to 15 min. Since the same forecast task in forecast.ent is shared between the intercycles and the synoptic cycles ... we must use the default longer FORECAST_WALLTIME so it works for both. Now this is less then ideal since the intercycles may get held up in the queue, since it is requesting a much longer time than is required. (For now this will work) - However, a possible way to address different forecast wall time requirements was started and is included in this commit..

NOTE: I just wanted to mention, I don't recall if the changes in this commit were tested. However they are not extensive and by reviewing them,they 'should' work.

See Below regarding ... Possible changes started for defining different forecast wall times for synoptic and inter cycles. See this file. Included in this commit for details. forecast.ent.icda.TEST

Index: rocoto/hwrf_workflow.xml.in

--- rocoto/hwrf_workflow.xml.in (revision 6659)
+++ rocoto/hwrf_workflow.xml.in (working copy)
@@ -14,12 +14,18 @@
   <!ENTITY WORK_SCRUB_TIME "14400">
   <!ENTITY CYCLE_THROTTLE "7">
   <!ENTITY TASK_THROTTLE "48">
+  <!-- ICDA with less than 6 hourly cycles-->
+@** elseif CYCLE_INTERVAL!=6.0
+  <!ENTITY COM_SCRUB_TIME "1800">
+  <!ENTITY WORK_SCRUB_TIME "600">
+  <!ENTITY CYCLE_THROTTLE "8">
+  <!ENTITY TASK_THROTTLE "48">  
 @** elseif DA_ENSEMBLE==YES
   <!-- Deterministic GFS-based HWRF forecast with GFS ENKF based HWRF
   ensemble -->
   <!ENTITY COM_SCRUB_TIME "1800">
   <!ENTITY WORK_SCRUB_TIME "600">
-  <!ENTITY CYCLE_THROTTLE "8">
+  <!ENTITY CYCLE_THROTTLE "4">
   <!ENTITY TASK_THROTTLE "48">
 @** else
   <!-- Deterministic HWRF, no DA ensemble -->

Index: rocoto/tasks/forecast.ent

--- rocoto/tasks/forecast.ent   (revision 6659)
+++ rocoto/tasks/forecast.ent   (working copy)
@@ -116,7 +116,7 @@
   <account>&ACCOUNT;</account>
   <queue>&PE;</queue>
   <nodes>&ATM_FCST;</nodes>
-  <walltime>00:15:00</walltime>
+  <walltime>&FORECAST_WALLTIME;</walltime>
   &UNLIMITED_MEMORY;
   <join><cyclestr>&WORKhwrf;/hwrf_atm_forecast.log</cyclestr></join>

@@ -171,3 +171,4 @@
   </dependency>

 </task>
+

REGARDING forecast.ent.icda.TEST

So the idea with this approach .... Not certain if this is the way to go ... but just want to describe it ... for consideration ... Diff this file with the forecst.ent file and you will see that it just has a new task added, named "icda_uncoupled_forecast_E#ENS#"

The idea is that the dependencies would be so defined such that it would select this task for the intercycles rather than the "uncoupled_forecast_E#ENS#" task.

TODO: I DON"T RECALL if this file is complete and ready for testing or if the dependencies were properly defined ...

CURRENTLY the wall time for this icda forecast task is hard-coded to 15 min, If you want to use the ICDA_FORECAST_WALLTIME entity variable you will need to define and add that entity to all the SITE files and than add the variable to the <walltime> tag replacing the 15 min setting.