EFFICIENT EXECUTION OF GRAPH-BASED PROGRAMS
First Claim
1. A method comprising:
- accessing, at a computing device, data descriptive of a graph representing a program, wherein the graph includes multiple nodes representing execution steps of the program and includes multiple edges representing data transfer steps;
determining at least two heterogeneous hardware resources of the computing device that are available to execute code represented by one or more of the multiple nodes;
determining one or more paths from a source node to a sink node based on a topology of the graph;
determining cost functions associated with the one or more paths; and
scheduling execution of code at the at least two heterogeneous hardware resources, wherein the code is represented by at least one of the multiple nodes, and wherein the execution of the code is scheduled based on the cost functions.
1 Assignment
0 Petitions
Accused Products
Abstract
A method includes accessing, at a computing device, data descriptive of a graph representing a program. The graph includes multiple nodes representing execution steps of the program and includes multiple edges representing data transfer steps. The method also includes determining at least two heterogeneous hardware resources of the computing device that are available to execute code represented by one or more of the nodes, and determining one or more paths from a source node to a sink node based on a topology of the graph. The method further includes scheduling execution of code at the at least two heterogeneous hardware resources. The code is represented by at least one of the multiple nodes, and the execution of the code is scheduled based on the one or more paths.
-
Citations
22 Claims
-
1. A method comprising:
-
accessing, at a computing device, data descriptive of a graph representing a program, wherein the graph includes multiple nodes representing execution steps of the program and includes multiple edges representing data transfer steps; determining at least two heterogeneous hardware resources of the computing device that are available to execute code represented by one or more of the multiple nodes; determining one or more paths from a source node to a sink node based on a topology of the graph; determining cost functions associated with the one or more paths; and scheduling execution of code at the at least two heterogeneous hardware resources, wherein the code is represented by at least one of the multiple nodes, and wherein the execution of the code is scheduled based on the cost functions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. An apparatus for generating, for a particular parallel hardware configuration, a program based on a graph associated with an application, the apparatus comprising:
-
a memory, wherein the memory is configured to store data descriptive of a graph, wherein the graph includes a first node representing a first execution task of a program, a second node representing a second execution task of the program, and an edge representing a data transfer between the first node and the second node; and a processor configured to generate, based on the data, program code of the program, wherein the program code includes a first state indicator associated with the first node and indicating a first statefulness characteristic of the first execution task. - View Dependent Claims (16, 17, 18)
-
-
19. An apparatus for generating, for a particular parallel hardware configuration, a program based on a graph associated with an application, the apparatus comprising:
-
means for storing data descriptive of a graph, wherein the graph includes a first node representing a first execution task of a program, a second node representing a second execution task of the program, and an edge representing a data transfer between the first node and the second node; and means for generating, based on the data, program code of the program, wherein the program code includes a first state indicator associated with the first node and indicating a first statefulness characteristic of the first execution task. - View Dependent Claims (20, 21, 22)
-
Specification