Optimizing Dynamic-Graph Data Structures on Multicores with the Locality-First Strategy
summary
Claims a locality-first strategy and builds Terrace, a hierarchical container that colocates low-degree neighbors in a shared PMA + standalone B-tree and uses a compressed packed memory array (CPMA) with Ligra-style vertex-scan primitives. Results show Terrace cuts query time vs Aspen (dynamic baseline) by about 2x on BFS/PageRank/CC and sometimes beats static Ligra; insertion throughput matches Aspen for most batch sizes. CPMA yields ~3–4× compression and fewer cache misses, improving both scan throughput and parallel scalability.
AI-written summary · about
chapters (20)
- 0:00Intro
- 0:34Problem: Developing Fast Graph Data Structures on Multicores
- 2:29Optimizing Multicore Algorithms Requires Exploiting Parallelism and Locality
- 4:23Dynamic Real-World Graphs Also Challenge Locality
- 4:56Multicore Optimization Enables Fast Queries and Updates in Graph Data Structures
- 9:53Dynamic Graph Data Structures and the Locality-First Strategy
- 11:38Spatial Locality Determines Graph Query Performance
- 13:16Choice of Graph Representation Determines Spatial Locality
- 16:34Understanding Opportunities for Locality in Separate Per-Vertex Data Structure Design
- 18:03Enhancing Spatial Locality by Collocating Neighbor Data Structures
- 20:28Collocating Neighbor Data Structures Exploits Naturally-Occurring Skewness in Graphs
- 21:23Insight: Further Optimizing for Locality with a Hierarchical Skew-Aware Design
- 22:12Implementing the Hierarchical Skew-Aware Design with Cache-Optimized Data Structures
- 22:40Selecting Data Structures for Dynamic Graphs asymptotically dominate Packed Memory Arrays
- 26:07Terrace: Applying the Locality-First Strategy to Dynamic Graph Data Structures
- 27:14Modern Dynamic Sets Support Batch Updates
- 30:46CPMA: An Efficient Compressed Batch-Parallel Set Without Pointers
- 34:34PMA Multi-Insert Relies on Batch Merge and Redistribute
- 37:30Compression Improves Parallel Scalability Due to Memory Bandwidth Issues
- 38:49Storing and Processing Dynamic Graphs With a Single CPMA
