C2SM / Sirocco

AiiDA based Weather and climate workflow tool
1 stars 0 forks source link

New graph internal representation + visualization #23

Open leclairm opened 1 month ago

leclairm commented 1 month ago

In order to not duplicate code and have less error sources from config to visualization, the graph visualization part should be implemented from the unrolled config directly. Doing it from the WorkGraph would get us closer to the actual executed workflow but we'd loose the cycles information (so the grouping of tasks) and would have to select what has to be represented.

Potentially we can think if it would be feasible to link it to the WorkGraph object so that we also have info about the status of tasks and data. I'm still unsure about that as the graph might be very big and pre-visualization would typically happen over a shorter simulation time than the actual production one.

leclairm commented 3 weeks ago

@agoscinski @GeigerJ2 @DropD I need your opinion on this before I start. I'm available for a call anytime today if needed.

After some thoughts, I have a new proposition which would go further than plugging in a visualization graph but rather refactor the intermediate representation (IR) part.

agoscinski commented 3 weeks ago

I think that should be fine, and if we want to create a visualization from the IR, it makes sense to resolve the dependencies in the IR rather than workgraph or visualization level individually. The only thought I had is that at the workgraph level we need to know if a dependency is created through input/output relationship or because it was specified by the depends/wait_on field in the yaml. So this need to be captured by this IR, even by keeping this in the tasks for give an edge a property.

leclairm commented 3 weeks ago

Yes sure. The task-task edge type must be captured. So I start working on it then. Hopefully I have stuff to show on Thursday ;-)

Thanks for the feedback