-
Notifications
You must be signed in to change notification settings - Fork 16
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
rocoto <complete> dependency #24
Comments
What is the use case for this feature? |
Two examples come to mind:
Such things can be dealt with by using final="T" tasks but it leads to incredibly complex code. This is especially problematic when generating a workflow automatically. Look at this file on Jet for an example: /lfs3/projects/hfv3gfs/glopara/noscrub/expdir/fv3q2fy19retro5_dell_restart/workflow.xml It is generated from this file: /lfs3/projects/hfv3gfs/glopara/noscrub/expdir/fv3q2fy19retro5_dell_restart/workflow.yaml |
Ok. So, for example, if a workflow will run either A or B, but you don't know which one's dependencies will be satisfied, you'll add a |
Chris, Depending on the specifics of the workflow, A and B may not be able to have direct dependencies on one another. I would have to see an example. A simpler example is if A and B depend on a prior event:
You can see examples of this in the HWRF workflow where there are two branches of the data assimilation parts of the workflow depending on whether TDR data is available. Compared to |
Ok. You've convinced me. I can see the utility of this in providing a way to have branching in a workflow (something that DAGs do a very bad job of representing). I agree that the "final" task attribute introduces some issues with booting and rewind. But, I see these two things as having distinct purposes. The "final" is really a way to "complete" an entire cycle, whereas, |
Chris, I like that explanation. It would make sense for the Rocoto documentation to have |
This requests the ecFlow "complete" directive be added to Rocoto. It would look something like this:
If the
<complete>
directive is met, the job is considered SUCCEEDED with the job id set to "completed." This would be inserted in the Rocoto implementation just beforesubmit_new_jobs
is called.This is a cleaner feature than the "final='T'" because it eliminates the problematic aspects of "drained" cycles.
The text was updated successfully, but these errors were encountered: