Parallel Weakly Connected Components With Deterministic Collision Merging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing weakly connected components (WCCs) in large graphs with millions of vertices is computationally intensive and difficult to scale, particularly in applications like electronic design automation, where fast processing is required.

Innovation Solution

A parallel and scalable method for computing WCCs involves assigning undefined values to vertices, performing depth-first visits, detecting thread collisions, generating collision graphs, and iteratively merging WCCIDs to determine WCCs in a deterministic manner.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a parallel algorithm is used to compute WCCs, then processing speed is improved, but thread collisions occur causing deterministic behavior to be lost

Engineering Contradiction:
Improveprocessing speedVSAvoiddeterministic behavior
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a mediator mechanism that tracks visited vertices and coordinates between threads. This mediator prevents thread collisions by ensuring each vertex is processed by exactly one thread, thereby maintaining deterministic behavior while enabling parallel processing. The mediator acts as an intermediary that resolves potential conflicts between parallel threads before they can cause non-deterministic outcomes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements feedback mechanisms where threads continuously check the state of vertices and adjust their processing accordingly. Through feedback loops that monitor vertex visitation status, the system ensures that parallel threads coordinate their actions to maintain deterministic outcomes. The feedback allows the system to detect and prevent thread collisions in real-time during parallel execution.

Inventive Principle:
Principle #23Feedback

2Reliability

If the graph is processed in a single-threaded manner, then deterministic behavior is maintained, but processing time increases significantly

Engineering Contradiction:
Improvedeterministic behaviorVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the graph processing task into independent sub-tasks that can be executed in parallel. By dividing the vertex processing into separate segments that can be handled by different threads simultaneously, the system achieves both speedup and determinism. Each segment is processed independently with proper coordination to ensure overall deterministic behavior.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic coordination mechanisms that adapt during parallel execution. The system dynamically adjusts thread behavior based on real-time state information, allowing flexible parallel processing while maintaining deterministic outcomes. The dynamic nature of the coordination allows the system to optimize performance while preserving correctness.

Inventive Principle:
Principle #15Dynamics

3Productivity

If more processing threads are added to speed up computation, then productivity improves, but the complexity of managing thread collisions increases

Engineering Contradiction:
Improvecomputation speedVSAvoidthread coordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where each thread autonomously manages its own processing while automatically coordinating with other threads through shared state checks. Threads independently determine their next actions based on current system state, reducing the need for complex centralized coordination. This self-service approach scales efficiently with the number of threads while maintaining manageable complexity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes key parameters of the processing system to enable efficient parallel coordination. By modifying how threads interact with the graph data structure and how they report their progress, the system reduces coordination overhead. Parameter changes in the data structure organization and thread communication protocols enable scalable parallel processing without proportionally increasing complexity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12474976B2Computation of weakly connected components in a parallel, scalable and deterministic manner
Publication Date: 2025.11.18 SYNOPSYS INC
  • US12474976B2 patent drawing
  • US12474976B2 patent drawing
  • US12474976B2 patent drawing

AI summary

Disclosed is a configuration to compute weakly connected components (WCCs) in a parallel, scalable and deterministic manner. The configuration receives an undirected original graph having vertices and edges. An undefined value is assigned to all the vertices of the graph. Thereafter, each vertex is visited and assigned a WCCID (index to identify a WCC). The visitation of vertices may determine whether there are one or more thread collisions. A collision is when two threads attempt to identify the same WCC. From these collisions a new graph may be generated, a collision graph, on which the same algorithm is iterated to compute WCCs of that collision graph. The process is iterated until no further collisions are determined. In a post process, the configuration merges the WCCIDs of the collision graphs to produce the WCCIDs of the original graph.