An introduction to parallel algorithms
An introduction to parallel algorithms
Parallel asynchronous label-correcting methods for shortest paths
Journal of Optimization Theory and Applications
I/O-complexity of graph algorithms
Proceedings of the tenth annual ACM-SIAM symposium on Discrete algorithms
Parallel asychronous algorithms for the K shortest paths problems
Journal of Optimization Theory and Applications
The boost graph library: user guide and reference manual
The boost graph library: user guide and reference manual
Introduction to Algorithms
A Simple Shortest Path Algorithm with Linear Average Time
ESA '01 Proceedings of the 9th Annual European Symposium on Algorithms
External-Memory Breadth-First Search with Sublinear I/O
ESA '02 Proceedings of the 10th Annual European Symposium on Algorithms
Δ-stepping: a parallelizable shortest path algorithm
Journal of Algorithms
The webgraph framework I: compression techniques
Proceedings of the 13th international conference on World Wide Web
A Scalable Distributed Parallel Breadth-First Search Algorithm on BlueGene/L
SC '05 Proceedings of the 2005 ACM/IEEE conference on Supercomputing
A computational study of external-memory BFS algorithms
SODA '06 Proceedings of the seventeenth annual ACM-SIAM symposium on Discrete algorithm
Algorithms and data structures for external memory
Foundations and Trends® in Theoretical Computer Science
Graph Analysis with High-Performance Computing
Computing in Science and Engineering
On Computational Models for Flash Memory Devices
SEA '09 Proceedings of the 8th International Symposium on Experimental Algorithms
Design and Engineering of External Memory Traversal Algorithms for General Graphs
Algorithmics of Large and Complex Networks
Implementing a portable Multi-threaded Graph Library: The MTGL on Qthreads
IPDPS '09 Proceedings of the 2009 IEEE International Symposium on Parallel&Distributed Processing
Characterizing the performance of flash memory storage devices and its impact on algorithm design
WEA'08 Proceedings of the 7th international conference on Experimental algorithms
HipG: parallel processing of large-scale graphs
ACM SIGOPS Operating Systems Review
Parallel breadth-first search on distributed memory systems
Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis
Shared work list: hacking amorphous data parallelism in UPC
Proceedings of the 2012 International Workshop on Programming Models and Applications for Multicores and Manycores
Kineograph: taking the pulse of a fast-changing and connected world
Proceedings of the 7th ACM european conference on Computer Systems
Distributed GraphLab: a framework for machine learning and data mining in the cloud
Proceedings of the VLDB Endowment
GraphChi: large-scale graph computation on just a PC
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
Betweenness centrality: algorithms and implementations
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Scale-up graph processing: a storage-centric view
First International Workshop on Graph Data Management Experiences and Systems
Toward millions of file system IOPS on low-cost, commodity hardware
SC '13 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
ACM SIGOPS 24th Symposium on Operating Systems Principles
A lightweight infrastructure for graph analytics
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
X-Stream: edge-centric graph processing using streaming partitions
Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles
Hi-index | 0.00 |
Processing large graphs is becoming increasingly important for many domains such as social networks, bioinformatics, etc. Unfortunately, many algorithms and implementations do not scale with increasing graph sizes. As a result, researchers have attempted to meet the growing data demands using parallel and external memory techniques. We present a novel asynchronous approach to compute Breadth-First-Search (BFS), Single-Source-Shortest-Paths, and Connected Components for large graphs in shared memory. Our highly parallel asynchronous approach hides data latency due to both poor locality and delays in the underlying graph data storage. We present an experimental study applying our technique to both In-Memory and Semi-External Memory graphs utilizing multi-core processors and solid-state memory devices. Our experiments using synthetic and real-world datasets show that our asynchronous approach is able to overcome data latencies and provide significant speedup over alternative approaches. For example, on billion vertex graphs our asynchronous BFS scales up to 14x on 16-cores.