Replies: 3 comments 4 replies
-
Hey @abkfenris - a solution we've discussed recently for this is for every op to have a default Nothing input called "after" or something. You could use "fan-in" if you wanted to be downstream of multiple ops. e.g.
Thoughts? |
Beta Was this translation helpful? Give feedback.
3 replies
-
@sryza Is the |
Beta Was this translation helpful? Give feedback.
1 reply
-
I have similar request |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Currently when an op depends on the completion of another, but not on it's specific outputs, the suggestion is to use
Nothing
for non-data dependencies.Issues with the current method
These all can lead to confusion and make it harder to reason about graphs.
A possible solution
How about setting non-data dependencies using a method on ops (and I guess graphs) similar to how
.configured()
works?Using a method (in this case
.wait_until()
, but it doesn't need to be that specific name) to specify non-data dependencies.By using a method, much of the ambiguity (what did I call my nothing in again?) and need to alter the signature of downstream ops can be avoided.
It could also be used to depend on a variable number of upstream ops by taking
SolidOutputHandle
as*args
Implementation
An initial implementation could work similarly to how
.configured()
works now, in that it creates a new copy of the op, except in this case instead of baking in the config it would add Nothing to ins.It could also work by adding a default
In(Array(Nothing))
input to all ops, then the method connects those.Later if the method is useful, then better visualization of non-data dependencies can be more easily shown as they are standardized, as would any optimizations around non-data dependencies.
Beta Was this translation helpful? Give feedback.
All reactions