Theoretically Efficient Parallel Graph Algorithms Can Be Fast and Scalable
arXiv:1805.05208 · doi:10.1145/3210377.3210414
Abstract
There has been significant recent interest in parallel graph processing due to the need to quickly analyze the large graphs available today. Many graph codes have been designed for distributed memory or external memory. However, today even the largest publicly-available real-world graph (the Hyperlink Web graph with over 3.5 billion vertices and 128 billion edges) can fit in the memory of a single commodity multicore server. Nevertheless, most experimental work in the literature report results on much smaller graphs, and the ones for the Hyperlink graph use distributed or external memory. Therefore, it is natural to ask whether we can efficiently solve a broad class of graph problems on this graph in memory. This paper shows that theoretically-efficient parallel graph algorithms can scale to the largest publicly-available graphs using a single machine with a terabyte of RAM, processing them in minutes. We give implementations of theoretically-efficient parallel algorithms for 20 important graph problems. We also present the optimizations and techniques that we used in our implementations, which were crucial in enabling us to process these large graphs quickly. We show that the running times of our implementations outperform existing state-of-the-art implementations on the largest real-world graphs. For many of the problems that we consider, this is the first time they have been solved on graphs at this scale. We have made the implementations developed in this work publicly-available as the Graph-Based Benchmark Suite (GBBS).
This is the full version of the paper appearing in the ACM Symposium on Parallelism in Algorithms and Architectures (SPAA), 2018
References in corpus (6)
- GraphLab: A New Framework for Parallel Machine Learning
- The GAP Benchmark Suite
- Compressing Graphs and Indexes with Recursive Graph Bisection
- Theoretically Efficient Parallel Graph Algorithms Can Be Fast and Scalable
- BigSparse: High-performance external graph analytics
- Single-Source Bottleneck Path Algorithm Faster than Sorting for Sparse Graphs
Cited by in corpus (23)
- Theoretically Efficient Parallel Graph Algorithms Can Be Fast and Scalable
- Parallel Batch-Dynamic Graph Connectivity
- Parallel Index-Based Structural Graph Clustering and Its Approximation
- SketchNE: Embedding Billion-Scale Networks Accurately in One Hour
- Cache-Efficient Fork-Processing Patterns on Large Graphs
- ConnectIt: A Framework for Static and Incremental Parallel Graph Connectivity Algorithms
- CPMA: An Efficient Batch-Parallel Compressed Set Without Pointers
- Generation of Paths in a Maze using a Deep Network without Learning
- PASGAL: Parallel And Scalable Graph Algorithm Library
- Efficiency Guarantees for Parallel Incremental Algorithms under Relaxed Schedulers
- Parallel Graph Algorithms in Constant Adaptive Rounds: Theory meets Practice
- Theoretically and Practically Efficient Parallel Nucleus Decomposition
- Towards Lightweight and Automated Representation Learning System for Networks
- Relaxed Scheduling for Scalable Belief Propagation
- Sage: Parallel Semi-Asymmetric Graph Algorithms for NVRAMs
- Efficient Stepping Algorithms and Implementations for Parallel Shortest Paths
- Pruned Landmark Labeling Meets Vertex Centric Computation: A Surprisingly Happy Marriage!
- Sandslash: A Two-Level Framework for Efficient Graph Pattern Mining
- Analysis of Work-Stealing and Parallel Cache Complexity
- Parallel Batch-Dynamic Coreness Decomposition with Worst-Case Guarantees
- ButterFly BFS -- An Efficient Communication Pattern for Multi Node Traversals
- Conceptual and Technical Challenges for High Performance Computing
- Parallelism in Randomized Incremental Algorithms