| CPC G06F 9/524 (2013.01) [G06F 11/0721 (2013.01); G06F 11/079 (2013.01)] | 20 Claims |

|
1. A computer implemented method comprising:
(a) receiving an undirected original graph having a plurality of vertices;
(b) assigning an undefined value to each vertex of the plurality of vertices;
(c) placing each vertex of the plurality of vertices in a global queue;
(d) selecting, for each thread, a vertex from the global queue and visiting the vertices of a WCC that contains the selected vertex;
(e) determining, for each thread, whether there is a collision at a visited vertex;
(f) executing one of:
merging the visited vertex into an existing weakly connected component (WCCs) for the thread in response to no collision, or
generating a collision pair with the visited vertex in response to a collision;
(g) collecting the collision pairs to generate a collision graph;
iterating steps (a) through (g) to generate a new collision graph until the collision graph is empty due to no collisions determined; and
merging, by a processor, the WCCs of the generated collision graphs to produce the WCCs of the original graph.
|