passing information among different tasks #620
Replies: 5 comments 19 replies
-
Hi @uturuncoglu, thanks for starting this discussion. I have some questions:
Probably not: The design of the UW drivers is such that they are expected to get any needed information from the config that the driver is instantiated with, which is also schema-checked for correctness.
I think this is the right approach. Depending on your workflow, and especially whether it processes any tasks in parallel, you might need to consider making a copy of the main config and editing only the copy, perhaps in the run directory for a specific task. Those are just some initial thoughts. We'd be happy to look at code, too, and try to help come up with good ideas. |
Beta Was this translation helpful? Give feedback.
-
Hi @uturuncoglu. I just wanted to let you know that I merged a small PR updating the |
Beta Was this translation helpful? Give feedback.
-
@maddenp-noaa I circle back to my initial question again. The workflow that I am working on gets input forcing and creates CDEPS namelist files based on it. The issue is that there are some options in the CDEPS namelist files that are input file specific and it is hard to know those options in advance since we are subsetting the forcing file based on the domain file. For example, |
Beta Was this translation helpful? Give feedback.
-
@uturuncoglu I feel confident there's a clean solution, but it would probably be easier to look at your code together. Maybe we could schedule some time soon to do a screen-sharing sessions to look at what you've got. If you like, please feel free to invite me -- you should be able to see my calendar with your NOAA email and e.g. invite me to a Meet. |
Beta Was this translation helpful? Give feedback.
-
@uturuncoglu I had a few thoughts after our Meet discussion:
to the
But another task could e.g.
I think it demonstrates some of the ideas we talked about, and shows how public tasks with no arguments, private helper tasks with arguments, and helper functions can work together to model a more complicated workflow, with each lower-level task communicating information that it is responsible for upwards, and how higher-level tasks can use that information. I hope it's useful. |
Beta Was this translation helpful? Give feedback.
-
I wonder if there is a way of updating information read from the config.yaml file. In my case, workflow has a task that downloads forcing data and I need to point those data files when I am creating cdeps stream namelist file (defined by
stream_data_files
). This is could be also used to update other informations such as ESMF Mesh file (stream_mesh_file
) etc. Maybe it could be another way to pass information between the tasks but I am not sure since current implementation ofcdeps.atm_stream()
does not accept any arguments to use. Do we need to extend it to accept options? or maybe dynamically updating (or adding entries) toconfig.yaml
would be the option. Not sure since then the result config.yaml could end up a different one since it is dynamically changing along the way and it might not be the safest way and might be hard to debug in case of any issue. Anyway, any suggestion might help.Beta Was this translation helpful? Give feedback.
All reactions