Will t1 be called and executed twice in this case (as a dependency for both t2 and t3)? Or Ray knows that t1 is already being executed as a part of another DAG (t2) and the current DAG (t3) just waits for t1 to return? If not, how can I achieve this behaviour, without re-executing t1? Thanks!
However, I am not entirely sure if this is any native API from workflow that could skip execution of a node that’s overlapped with another DAG
cc @yic
Some random ideas, If you want to avoid executing some code, I wonder if you could use object store as a cache, so you could put the executed result into object store with ray.put and get from it the next time?