AUTOMATIC GENERATION OF MULTI-SOURCE BREADTH-FIRST SEARCH FROM HIGH-LEVEL GRAPH LANGUAGE FOR DISTRIBUTED GRAPH PROCESSING SYSTEMS
First Claim
1. A method comprising:
- analyzing a first plurality of software instructions, wherein the first plurality of software instructions is configured to perform a plurality of breadth-first searches to determine a particular result, wherein each breadth-first search originates at each of a plurality of vertices of a distributed graph, wherein each breadth-first search is encoded for independent execution;
based on said analyzing, generating a second plurality of software instructions configured to perform a multi-source breadth-first search to determine the particular result, wherein each of the plurality of vertices is a source of the multi-source breadth-first search,wherein the second plurality of software instructions comprises a node iteration loop and a neighbor iteration loop, wherein the plurality of vertices of the distributed graph comprise active vertices and neighbor vertices;
wherein the node iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, wherein the node iteration loop is configured to determine the particular result;
wherein the neighbor iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, wherein each iteration of the neighbor iteration loop is configured to activate one or more neighbor vertices of the plurality of vertices for the following iteration of the neighbor iteration loop.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described herein for automatic generation of multi-source breadth-first search (MS-BFS) from high-level graph processing language that can be executed in a distributed computing environment. In an embodiment, a method involves a computer analyzing original software instructions. The original software instructions are configured to perform multiple breadth-first searches to determine a particular result. Each breadth-first search originates at each of a subset of vertices of a graph. Each breadth-first search is encoded for independent execution. Based on the analyzing, the computer generates transformed software instructions configured to perform a MS-BFS to determine the particular result. Each of the subset of vertices is a source of the MS-BFS. In an embodiment, the second plurality of software instructions comprises a node iteration loop and a neighbor iteration loop, and the plurality of vertices of the distributed graph comprise active vertices and neighbor vertices. The node iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, and the node iteration loop is configured to determine the particular result. The neighbor iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, and each iteration of the neighbor iteration loop is configured to activate one or more neighbor vertices of the plurality of vertices for the following iteration of the neighbor iteration loop.
3 Citations
20 Claims
-
1. A method comprising:
-
analyzing a first plurality of software instructions, wherein the first plurality of software instructions is configured to perform a plurality of breadth-first searches to determine a particular result, wherein each breadth-first search originates at each of a plurality of vertices of a distributed graph, wherein each breadth-first search is encoded for independent execution; based on said analyzing, generating a second plurality of software instructions configured to perform a multi-source breadth-first search to determine the particular result, wherein each of the plurality of vertices is a source of the multi-source breadth-first search, wherein the second plurality of software instructions comprises a node iteration loop and a neighbor iteration loop, wherein the plurality of vertices of the distributed graph comprise active vertices and neighbor vertices; wherein the node iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, wherein the node iteration loop is configured to determine the particular result; wherein the neighbor iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, wherein each iteration of the neighbor iteration loop is configured to activate one or more neighbor vertices of the plurality of vertices for the following iteration of the neighbor iteration loop. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer-readable storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform a method comprising:
-
analyzing a first plurality of software instructions, wherein the first plurality of software instructions is configured to perform a plurality of breadth-first searches to determine a particular result, wherein each breadth-first search originates at each of a plurality of vertices of a distributed graph, wherein each breadth-first search is encoded for independent execution; based on said analyzing, generating a second plurality of software instructions configured to perform a multi-source breadth-first search to determine the particular result, wherein each of the plurality of vertices is a source of the multi-source breadth-first search, wherein the second plurality of software instructions comprises a node iteration loop and a neighbor iteration loop, wherein the plurality of vertices of the distributed graph comprise active vertices and neighbor vertices; wherein the node iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, wherein the node iteration loop is configured to determine the particular result; wherein the neighbor iteration loop is configured to iterate once per each active vertex of the plurality of vertices of the distributed graph, wherein each iteration of the neighbor iteration loop is configured to activate one or more neighbor vertices of the plurality of vertices for the following iteration of the neighbor iteration loop. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification