Skip to content

WIP: Feature: PetscCallGraph

Jacob Faibussowitsch requested to merge jacobf/2021-08-02/petsccallgraph into main

Step 2 of the en-streamening of PETSc. Discovering parallelism and swapping streams by hand is difficult, so PETSc should do this for you!

Features

  • Store any arbitrary function call, with all of its arguments! [Extension: determine order from function arguments?]
  • Created graphs are stream-aware, and when it identifies parallelism in a graph, will automatically create and manage streams for you.
  • It is also possible to enqueue graph execution on a stream meaning that...
  • Created graphs are fully composable with one another. One can combine an arbitrary number of graphs together to form a super graph. The parent graph will also manage any child graphs streams.
  • Loops (the A in DAG is optional) are also supported via composition (WIP, might get axed).
Edited by Jacob Faibussowitsch

Merge request reports