Abstract
We study the problem of implementing graph algorithms efficiently on Pregel-like systems, which can be surprisingly challenging. Standard graph algorithms in this setting can incur unnecessary inefficiencies such as slow convergence or high communication or computation cost, typically due to structural properties of the input graphs such as large diameters or skew in component sizes. We describe several optimization techniques to address these inefficiencies. Our most general technique is based on the idea of performing some serial computation on a tiny fraction of the input graph, complementing Pregel's vertex-centric parallelism. We base our study on thorough implementations of several fundamental graph algorithms, some of which have, to the best of our knowledge, not been implemented on Pregel-like systems before. The algorithms and optimizations we describe are fully implemented in our open-source Pregel implementation. We present detailed experiments showing that our optimization techniques improve runtime significantly on a variety of very large graph datasets.
Original language | English (US) |
---|---|
Pages (from-to) | 577-588 |
Number of pages | 12 |
Journal | Proceedings of the VLDB Endowment |
Volume | 7 |
Issue number | 7 |
DOIs | |
State | Published - Mar 1 2014 |
Externally published | Yes |
Bibliographical note
KAUST Repository Item: Exported on 2020-10-01Acknowledgements: This work was supported by the National Science Foundation(IIS-0904497), the Boeing Corporation, a KAUST research grant,and a research grant from Amazon Web Services.
This publication acknowledges KAUST support, but has no KAUST affiliated authors.