Meerkat: A framework for Dynamic Graph Algorithms on GPUs

Kevin Jude Concessao,Unnikrishnan Cheramangalath,MJ Ricky Dev,Rupesh Nasre
2023-06-02
Abstract:Graph algorithms are challenging to implement due to their varying topology and irregular access patterns. Real-world graphs are dynamic in nature and routinely undergo edge and vertex additions, as well as, deletions. Typical examples of dynamic graphs are social networks, collaboration networks, and road networks. Applying static algorithms repeatedly on dynamic graphs is inefficient. Unfortunately, we know little about how to efficiently process dynamic graphs on massively parallel architectures such as GPUs. Existing approaches to represent and process dynamic graphs are either not general or inefficient. In this work, we propose a library-based framework for dynamic graph algorithms that proposes a GPU-tailored graph representation and exploits the warp-cooperative execution model. The library, named Meerkat, builds upon a recently proposed dynamic graph representation on GPUs. This representation exploits a hashtable-based mechanism to store a vertex's neighborhood. Meerkat also enables fast iteration through a group of vertices, such as the whole set of vertices or the neighbors of a vertex. Based on the efficient iterative patterns encoded in Meerkat, we implement dynamic versions of the popular graph algorithms such as breadth-first search, single-source shortest paths, triangle counting, weakly connected components, and PageRank. Compared to the state-of-the-art dynamic graph analytics framework Hornet, Meerkat is $12.6\times$, $12.94\times$, and $6.1\times$ faster, for query, insert, and delete operations, respectively. Using a variety of real-world graphs, we observe that Meerkat significantly improves the efficiency of the underlying dynamic graph algorithm. Meerkat performs $1.17\times$ for BFS, $1.32\times$ for SSSP, $1.74\times$ for PageRank, and $6.08\times$ for WCC, better than Hornet on average.
Distributed, Parallel, and Cluster Computing
What problem does this paper attempt to address?
The paper aims to address the efficient implementation of dynamic graph algorithms on GPUs. Specifically, the paper investigates the following points: 1. **Dynamic Graph Representation**: The paper proposes a new framework—Meerkat, for representing and processing dynamic graph data structures. Existing graph representation methods are either not general or inefficient. Meerkat stores vertex adjacency relationships based on a hash table mechanism and leverages the GPU's warp cooperative execution model. 2. **Iterative Optimization**: The paper points out that operations traversing vertices and their neighbors are very common in graph algorithms, so optimizing these operations is crucial for improving performance. Meerkat provides various iterators (such as SlabIterator, BucketIterator, and UpdateIterator) to make traversing vertices and neighbors more efficient. 3. **Implementation of Dynamic Graph Algorithms**: Based on the efficient iteration patterns provided by Meerkat, the paper implements several popular dynamic graph algorithms, including Breadth-First Search (BFS), Single-Source Shortest Path (SSSP), Triangle Counting, Weakly Connected Components (WCC), and the PageRank algorithm. 4. **Performance Comparison**: Compared to existing dynamic graph analysis frameworks, Meerkat is 12.6 times, 12.94 times, and 6.1 times faster in query, insert, and delete operations, respectively. For specific algorithms like BFS, SSSP, PageRank, and WCC, Meerkat also shows significant performance improvements. In summary, the paper aims to solve the problem of efficient implementation of dynamic graph algorithms on GPUs by proposing a new dynamic graph processing framework, Meerkat, and experimentally validating its superior performance in practical applications.