Method and system for merging directed acyclic graphs representing data flow codes
First Claim
Patent Images
1. A method in a data processing system, comprising the steps of:
- generating a plurality of individual directed acyclic graphs, wherein each of the plurality of individual directed acyclic graphs comprise a plurality of nodes representing executable tasks and each of the plurality of individual directed acyclic graphs comprise dependencies between the plurality of nodes representing the executable tasks;
merging the individual directed acyclic graphs at runtime to create a merged directed acyclic graph, wherein the merged directed acyclic graph includes at least one dependency between nodes from different individual directed acyclic graphs wherein the step of merging the individual directed acyclic graphs at runtime further comprises;
comparing a node in a first one of the individual directed acyclic graphs with a node in a second one of the individual directed acyclic graphs to determine if there is a merged dependency between the compared nodes, andcreating a directed arc in the merged directed acyclic graph to reflect the merged dependency, wherein the merged dependency did not exist in the first one or the second one of the individual directed acyclic graphs individually; and
executing the merged directed acyclic graph while the merged directed acyclic graph is being constructed.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems facilitating a programmer to program parts of a program in data flow programming to produce directed acyclic graphs (“DAGs”), and then merge the graphs at runtime for efficiency and scalability. Large merged DAG can typically be processed with greater efficiency than the collection of smaller DAGs. As a result, smaller DAGs may be created while the execution of the program realizes the increased efficiency of executing a larger DAG based on the merging of the smaller DAGs. In accordance with methods and systems consistent with the present invention, a programmer creates individual data flow directed acyclic graphs in a program.
39 Citations
12 Claims
-
1. A method in a data processing system, comprising the steps of:
-
generating a plurality of individual directed acyclic graphs, wherein each of the plurality of individual directed acyclic graphs comprise a plurality of nodes representing executable tasks and each of the plurality of individual directed acyclic graphs comprise dependencies between the plurality of nodes representing the executable tasks; merging the individual directed acyclic graphs at runtime to create a merged directed acyclic graph, wherein the merged directed acyclic graph includes at least one dependency between nodes from different individual directed acyclic graphs wherein the step of merging the individual directed acyclic graphs at runtime further comprises; comparing a node in a first one of the individual directed acyclic graphs with a node in a second one of the individual directed acyclic graphs to determine if there is a merged dependency between the compared nodes, and creating a directed arc in the merged directed acyclic graph to reflect the merged dependency, wherein the merged dependency did not exist in the first one or the second one of the individual directed acyclic graphs individually; and executing the merged directed acyclic graph while the merged directed acyclic graph is being constructed. - View Dependent Claims (2, 3, 4)
-
-
5. A data processing system, comprising:
-
a memory storing a program that; generates a plurality of individual directed acyclic graphs, wherein each of the plurality of individual directed acyclic graphs comprise a plurality of nodes representing executable tasks and each of the plurality of individual directed acyclic graphs comprise dependencies between plurality of nodes representing the executable tasks, merges the individual directed acyclic graphs at runtime to create a merged directed acyclic graph, wherein the merged directed acyclic graph includes at least one dependency between nodes from different individual directed acyclic graphs, and compares a node in a first one of the individual directed acyclic graphs with a node in a second one of the individual directed acyclic graphs to determine if there is a merged dependency between the compared nodes, and creates a directed arc in the merged directed acyclic graph to reflect the merged dependency, wherein the merged dependency did not exist in the first one or the second one of the individual directed acyclic graphs individually; and a processor for running the program, wherein the program further executes the merged directed acyclic graph while the merged directed acyclic graph is being constructed. - View Dependent Claims (6, 7, 8)
-
-
9. A tangible, non-transitory computer-readable medium containing instructions for controlling a data processing system to perform a method, the method comprising the steps of:
-
generating a plurality of individual directed acyclic graphs, wherein each of the plurality of individual directed acyclic graphs comprise a plurality of nodes representing executable tasks and each of the plurality of individual directed acyclic graphs comprise dependencies between the plurality of nodes representing the executable tasks; and merging the individual directed acyclic graphs at runtime to create a merged directed acyclic graph, wherein the merged directed acyclic graph includes at least one dependency between nodes from different individual directed acyclic graphs; comparing each node in a first one of the individual directed acyclic graphs with each node in a second one of the individual directed acyclic graphs to determine if there are merged dependencies between the compared nodes; creating a directed arc in the merged directed acyclic graph to reflect the merged dependency, wherein the merged dependency did not exist in the first one or the second one of the individual directed acyclic graphs individually; and executing the merged directed acyclic graph while the merged directed acyclic graph is being constructed. - View Dependent Claims (10, 11)
-
-
12. A data processing system, comprising:
-
means for generating a plurality of individual directed acyclic graphs, wherein each of the plurality of individual directed acyclic graphs comprise a plurality of nodes representing executable tasks and each of the plurality of individual directed acyclic graphs comprise dependencies between the plurality of nodes representing the executable tasks; and means for merging the individual directed acyclic graphs at runtime to create a merged directed acyclic graph, wherein the merged directed acyclic graph includes at least one dependency between nodes from different individual directed acyclic graphs, wherein the means for merging the individual directed acyclic graphs at runtime is operable to; compare a node in a first one of the individual directed acyclic graphs with a node in a second one of the individual directed acyclic graphs to determine if there is a merged dependency between the compared nodes, and create a directed arc in the merged directed acyclic graph to reflect the merged dependency, wherein the merged dependency did not exist in the first one or the second one of the individual directed acyclic graphs individually; and means for executing the merged directed acyclic graph while the merged directed acyclic graph is being constructed.
-
Specification