Parallel Graph Connected Components via Hyper-Graph Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing algorithms for finding connected components in large graphs are computationally expensive and inefficient, especially when adapted for parallel processing, due to issues like 'hot spots' and reduced performance compared to sequential methods.

Innovation Solution

A three-phase parallel algorithm that first identifies subgraphs as hyper-nodes, applies a hook-and-compress algorithm on the hyper-graph, and then propagates labels to the underlying graph, distributing access to reduce hot spots and improving efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If a traditional parallel hook-and-compress algorithm is used to find connected components, then parallel processing capability is achieved, but hot spots are created causing serialized access and reduced efficiency

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidalgorithm efficiency
Core Design Contradiction:
Extent of automationVSProductivity

Solution Approach 1:

The patent segments the graph processing into multiple independent phases (initial labeling, hook passes, compress passes) that can be executed in parallel. Each phase operates on different aspects of the connected components problem, allowing concurrent processing without creating hot spots. The segmentation of the graph data structure into manageable components enables distributed processing across multiple processors while maintaining algorithmic correctness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary data structure (the label array and auxiliary arrays) that mediates between the graph data and the processing algorithms. This intermediary layer allows parallel processors to work with local copies of data without directly competing for access to the same memory locations, thereby eliminating hot spots while maintaining the ability to perform parallel operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Power

If the number of processors is increased to reduce computation time, then parallel processing power increases, but hot spot access contention increases causing performance degradation

Engineering Contradiction:
Improveparallel processing powerVSAvoidcomputation speed
Core Design Contradiction:
PowerVSProductivity

Solution Approach 1:

The patent implements local quality by allowing each processor to work with local copies of graph data and maintain local state information. Each processor operates independently on its assigned portion of the graph, accessing only the memory locations relevant to its local computations. This localizes memory access patterns and prevents multiple processors from simultaneously accessing the same memory locations, thereby eliminating hot spots even as processor count increases.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent transforms the traditional single-dimension parallel processing approach into a multi-dimensional approach by introducing phase-based processing. Instead of all processors working simultaneously on the same iteration, the algorithm progresses through multiple phases where different subsets of processors work on different aspects of the problem. This dimensional transformation in the processing space allows efficient utilization of multiple processors without creating memory access conflicts.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If a sequential depth first search algorithm is used, then each node is visited only twice achieving good efficiency, but the algorithm cannot leverage parallel processing to reduce computation time for large graphs

Engineering Contradiction:
Improvenode visit efficiencyVSAvoidcomputation time for large graphs
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing initial labeling of all nodes before the main connected components computation begins. Each node is pre-assigned a label and placed in appropriate data structures, preparing the graph for efficient parallel processing. This preliminary setup ensures that when parallel processors begin their work, they can operate independently without needing to perform repeated node visits, thus maintaining the efficiency advantage of sequential algorithms while enabling parallel execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements periodic action through its phased processing approach, where the algorithm alternates between hook passes and compress passes in periodic fashion. Each phase performs a specific function and then transitions to the next phase, allowing systematic progression through the connected components problem. This periodic structure enables parallel processors to work systematically through different aspects of the graph, achieving both parallel speedup and controlled node visitation similar to sequential algorithms.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS7764629B2Identifying connected components of a graph in parallel
Publication Date: 2010.07.27 CRAY INC
  • US7764629B2 patent drawing
  • US7764629B2 patent drawing
  • US7764629B2 patent drawing

AI summary

A method and system for finding connected components of a graph using a parallel algorithm is provided. The connected nodes system performs a search algorithm in parallel to identify subgraphs of the graph in which the nodes of the subgraph are connected. The connected nodes system also identifies which subgraphs have at least one edge between their nodes. Thus, the connected nodes system effectively generates a hyper-graph with the subgraphs as hyper-nodes that are connected when subgraphs have at least one edge between their nodes. The connected nodes system may then perform a conventional connected component algorithm on the hyper-graph to identify the connected hyper-nodes, which effectively identifies the connected nodes of the underlying graphs.