Faster Vertex Cover Algorithms on GPUs with Component-Aware Parallel Branching
Hussein Amro, Basel Fakhri, Amer E. Mouawad, Izzat El Hajj

TL;DR
This paper introduces a GPU algorithm for vertex cover that detects graph components to avoid redundant work, reducing memory use and significantly speeding up the solution process compared to previous methods.
Contribution
It presents a novel GPU approach that detects graph splits into components and branches independently, enabling load-balanced parallel processing of complex graphs.
Findings
Outperforms state-of-the-art GPU solutions, solving large graphs in seconds.
Reduces memory footprint by graph reduction and subgraph induction.
First GPU method to parallelize non-tail-recursive branching patterns.
Abstract
Algorithms for finding minimum or bounded vertex covers in graphs use a branch-and-reduce strategy, which involves exploring a highly imbalanced search tree. Prior GPU solutions assign different thread blocks to different sub-trees, while using a shared worklist to balance the load. However, these prior solutions do not scale to large and complex graphs because their unawareness of when the graph splits into components causes them to solve these components redundantly. Moreover, their high memory footprint limits the number of workers that can execute concurrently. We propose a novel GPU solution for vertex cover problems that detects when a graph splits into components and branches on the components independently. Although the need to aggregate the solutions of different components introduces non-tail-recursive branches which interfere with load balancing, we overcome this challenge by…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsGraph Theory and Algorithms · Complexity and Algorithms in Graphs · Parallel Computing and Optimization Techniques
