-
Notifications
You must be signed in to change notification settings - Fork 38
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
Enhancement: Add option to check for missing input and skip wrapper runs if threshold is not met #2524
Comments
@JohnHalleyGotway @georgemccabe I'm following up with Shannon/others to see if this is critical for EVS v2.0 or not. I will let you know if it is. Thanks! |
We discussed the details of this issue in the METplus/NOAA Telecon on 6/10/2024. It was reiterated that these changes are not critical to be added for the next release to include in EVS v2.0. Shannon has scripting logic to handle this situation. An InputCheck wrapper would satisfy this requirement. The wrapper would support the following configuration variable types:
Note that we need to consider how to handle multiple ensembles. Per Shannon, all members must be present for each init/lead time in order for the runtime to be counted as valid. Need to flesh out these details about ensemble member handling more. George suggested using a comma-separated list in the _TEMPLATE variable to list multiple ensembles that correspond to the same time. We would like to be able to easily configure this to process multiple ensembles whose names may be differentiated by a string (rather than a number) that could be tedious to list out. Maybe the CUSTOM_LOOP_LIST behavior would help here? Example:
In this example, there are 3 input checks -- config (no instance ID), abc, and xyz. 1st check: 2nd check: 3rd check: |
@georgemccabe As discussed the other day, the BoM would be very interested in seeing this feature in METplus. In our case, the system running METplus is downstream of the forecast (and obs data) systems, and we need to wait for data to arrive before we can run METplus jobs. While this is mostly regular, there are delays for various reasons. This functionality would be useful as it allows jobs to bail out early and save CPU time. As an alternative, we would also use a tool that generates a list of expected files and passes this back (or writes to a file) so the master scheduler can watch for these files then trigger the appropriate METplus jobs. |
One issue we have found with the above approach is that it cannot support wildcard character (*) matching. This shouldn't prevent the the implementation of this functionality, but users should be aware |
Thanks for pointing this out @John-Sharples.
We will want to ensure that this is well documented, perhaps with a note directive to draw attention to it. |
#2460 was completed to add a check for missing inputs and configure a threshold to prevent errors if some inputs were not available. Shannon Shields from NOAA/EMC tested and noted that to match the behavior currently implemented for EVS, the check for missing inputs and comparison to configurable threshold should be done before running any wrappers and all calls to wrappers should not be executed if the threshold is not met.
Describe the Enhancement
Modify logic to loop through all times and gather report of available inputs to see if any wrappers should be called. Consider only doing this if METplus is configured to perform the missing input check.
More thought is needed to determine how to implement this change. For use cases with multiple items in the PROCESS_LIST, it may not be clear which inputs to a wrapper are actual inputs to the use case or output from another wrapper in the PROCESS_LIST. Perhaps a separate wrapper could be added where users can define the filename templates of the inputs to the use case to check for availability. This could allow different thresholds of missing/available input for each input dataset.
Time Estimate
~3 days
Sub-Issues
Consider breaking the enhancement down into sub-issues.
Relevant Deadlines
EVS 2.0 if possible, but scripting is in already place to handle this before the call to METplus wrappers.
Funding Source
Define the source of funding and account keys here or state NONE.
Define the Metadata
Assignee
Labels
Projects and Milestone
Define Related Issue(s)
Consider the impact to the other METplus components.
Enhancement Checklist
See the METplus Workflow for details.
Branch name:
feature_<Issue Number>_<Description>
Pull request:
feature <Issue Number> <Description>
Select: Reviewer(s) and Development issues
Select: Repository level development cycle Project for the next official release
Select: Milestone as the next official version
The text was updated successfully, but these errors were encountered: