Differencing of executable dataflow graphs
US-11455229-B2 · Sep 27, 2022 · US
US11989537B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11989537-B2 |
| Application number | US-202217806225-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 9, 2022 |
| Priority date | Jun 9, 2022 |
| Publication date | May 21, 2024 |
| Grant date | May 21, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A computer-based visualization and refactoring system is capable of analyzing a computer program to determine computation tasks of the computer program and channels linking the computation tasks. The system generates, in a memory of computer hardware, a dataflow graph having nodes representing the computation tasks and edges representing the channels. The edges connect the nodes. Source code representations of the computation tasks are determined. Execution metrics of the computer program are determined. The nodes of the dataflow graph are annotated with the source code representations and the nodes and/or the edges are annotated with the execution metrics. The dataflow graph is displayed on a display device as annotated.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: using computer hardware, generating, in a memory of the computer hardware, a dataflow graph having nodes representing computation tasks of a computer program and edges representing channels linking the computation tasks, wherein the edges connect the nodes; creating, in the memory, records associating source code representations of the computer program with the computation tasks; determining, using the computer hardware, execution metrics of the computer program; annotating the nodes of the dataflow graph with the source code representations and at least one of the edges or the nodes with the execution metrics; displaying the dataflow graph on a display device as annotated; in response to a user input, performing a refactoring action on the dataflow graph, wherein the refactoring action includes at least one of an operation including merging and serializing two or more selected nodes into a single node or another operation including splitting a selected node into two or more nodes; generating updated execution metrics based on the refactoring action; and displaying the updated execution metrics on the dataflow graph. 2. The method of claim 1 , further comprising: updating the dataflow graph responsive to the refactoring action resulting in an updated version of the dataflow graph; and displaying the updated version of the dataflow graph. 3. The method of claim 1 , wherein the execution metrics are determined, at least in part, by compiling and executing the computer program. 4. The method of claim 1 , wherein the refactoring action includes at least one of a loop refactoring action or inlining a function call. 5. The method of claim 1 , wherein the refactoring action includes at least one of removing a selected node from the dataflow graph or adding a new node to the dataflow graph. 6. The method of claim 1 , further comprising: sizing the nodes of the dataflow graph as displayed according to latencies of the computation tasks represented by the nodes. 7. The method of claim 1 , further comprising: displaying a first representation of an execution iteration of the computer program on a timeline; and displaying a second representation of a next execution iteration of the computer program on the timeline, wherein the second representation is offset from the first representation by a distance corresponding to an iteration interval of the computer program. 8. The method of claim 1 , further comprising: creating a hierarchy in the dataflow graph by generating a sub-dataflow graph representing a selected computation task; in response to a user input, performing a refactoring action on the sub-dataflow graph; and displaying an updated version of the sub-dataflow graph in response to the performing the refactoring action. 9. The method of claim 1 , further comprising: distinguishing between synchronous channels and stream channels in the computer program; and visually distinguishing edges that represent synchronous channels from edges that represent stream channels in the dataflow graph as displayed. 10. A system, comprising: one or more processors configured to initiate operations including: generating, in a memory coupled to the one or more processors, a dataflow graph having nodes representing computation tasks of a computer program and edges representing channels linking the computation tasks, wherein the edges connect the nodes; determining execution metrics of the computer program; creating, in the memory, records associating source code representations of the computer program with the computation tasks; annotating the nodes of the dataflow graph with the source code representations and at least one of the edges or the nodes with the execution metrics; displaying the dataflow graph on a display device as annotated; in response to a user input, performing a refactoring action on the dataflow graph, wherein the refactoring action includes at least one of an operation including merging and serializing two or more selected nodes into a single node or another operation including splitting a selected node into two or more nodes; generating updated execution metrics based on the refactoring action; and displaying the updated execution metrics on the dataflow graph. 11. The system of claim 10 , wherein the one or more processors are configured to initiate operations further comprising: updating the dataflow graph responsive to the refactoring action resulting in an updated version of the dataflow graph; and displaying the updated version of the dataflow graph. 12. The system of claim 10 , wherein the execution metrics are determined, at least in part, by compiling and executing the computer program. 13. The system of claim 10 , wherein the refactoring action includes at least one of removing a selected node from the dataflow graph or adding a new node to the dataflow graph. 14. The system of claim 10 , wherein the one or more processors are configured to initiate operations further comprising: sizing the nodes of the dataflow graph as displayed according to latencies of the computation tasks represented by the nodes. 15. The system of claim 10 , wherein the one or more processors are configured to initiate operations further comprising: displaying a first representation of an execution iteration of the computer program on a timeline; and displaying a second representation of a next execution iteration of the computer program on the timeline, wherein the second representation is offset from the first representation by a distance corresponding to an iteration interval of the computer program. 16. The system of claim 10 , wherein the one or more processors are configured to initiate operations further comprising: creating a hierarchy in the dataflow graph by generating a sub-dataflow graph representing a selected computation task; in response to a user input, performing a refactoring action on the sub-dataflow graph; and displaying an updated version of the sub-dataflow graph in response to the performing the refactoring action. 17. The system of claim 10 , wherein the one or more processors are configured to initiate operations further comprising: distinguishing between synchronous channels and stream channels in the computer program; and visually distinguishing edges that represent synchronous channels from edges that represent stream channels in the dataflow graph as displayed. 18. A computer program product, comprising: one or more computer-readable storage media, and program instructions collectively stored on the one or more computer-readable storage media, wherein the program instructions are executable by computer hardware to initiate operations including: generating, in a memory of the computer hardware, a dataflow graph having nodes representing computation tasks of a computer program and edges representing channels linking the computation tasks, wherein the edges connect the nodes; determining execution metrics of the computer program; creating, in the memory, records associating source code representations of the computer program with the computation tasks; annotating the nodes of the dataflow graph with the source code representations and at least one of the edges or the nodes with the execution metrics; displaying the dataflow graph on a display device as annotated; in response to a user input, performing a refactoring action on the dataflow graph, wherein the refactoring action includes at least one of an operation including merging and serial
Dependency analysis; Data or control flow analysis · CPC title
Software metrics · CPC title
Performance evaluation by tracing or monitoring · CPC title
Graphs; Linked lists (G06F16/9027 takes precedence) · CPC title
Graphical or visual programming · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.