US 12,474,976 B2
Computation of weakly connected components in a parallel, scalable and deterministic manner
Olivier Rene Coudert, Sunnyvale, CA (US); and Krishanu Debnath, Bangalore (IN)
Assigned to Synopsys, Inc., Sunnyvale, CA (US)
Filed by Synopsys, Inc., Mountain View, CA (US)
Filed on Oct. 26, 2022, as Appl. No. 17/974,412.
Claims priority of provisional application 63/272,614, filed on Oct. 27, 2021.
Prior Publication US 2023/0126888 A1, Apr. 27, 2023
Int. Cl. G06F 9/52 (2006.01); G06F 11/07 (2006.01)
CPC G06F 9/524 (2013.01) [G06F 11/0721 (2013.01); G06F 11/079 (2013.01)] 20 Claims
OG exemplary drawing
 
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.