Abstract
The vertex-centric (VC) computation model has emerged as a promising approach for easy parallel programming and massive parallel execution for big graph processing. A simple graph computation can easily be implemented in the VC model, but some algorithms cannot easily be implemented in the VC model. Examples of the latter algorithms are those that use vertex subsets or subgraphs as a manipulation unit. Such a “global view style” is natural for programmers to design graph algorithms, but the VC model requires us to redesign algorithms in the “local view style” focusing on a vertex. The gap between these styles prevents us from writing parallel programs for useful graph computations. In this paper, we propose a novel DSL for graph processing that can be used to write parallel programs for big graph processing in the “global view style”. It is compiled into the VC model so that it can enjoy massive parallelism in various parallel computing environments including commercial cloud services like Amazon EC2. We show non-trivial examples in our DSL, and our experimental results show that the compiled program achieves good scalability.
Similar content being viewed by others
Notes
The threshold \(\theta\) is a factor of 2 because an edge is counted twice in the sum of degrees \(\text{ deg }_S(i)\).
References
The Apache Software Foundation. Apache giraph: the giraph website. http://giraph.apache.org/. Accessed 20 June 2018
Bahmani B, Kumar R, Vassilvitskii S (2012) Densest subgraph in streaming and mapreduce. Proc VLDB Endow 5(5):454–465
Emoto K, Matsuzaki K, Hu Z, Morihata A, Iwasaki H (2016) Think like a vertex, behave like a function! A functional DSL for vertex-centric big graph processing. In: Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming, ICFP 2016, pp 200–213. ACM
Hong S, Chafi H, Sedlar E, Olukotun K (2012) Green-Marl: a DSL for easy and efficient graph analysis. In: Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XVII, pp 349–362. ACM
Hong S, Salihoglu S, Widom J, Olukotun K (2014) Simplifying scalable graph processing with a domain-specific language. In: Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization, CGO ’14, pp 208–218. ACM
Malewicz G, Austern MH, Bik AJ, Dehnert JC, Horn I, Leiser N, Czajkowski G (2010) Pregel: a system for large-scale graph processing. In: Proceedings of the 2010 ACM SIGMOD International Conference on Management of Data, SIGMOD ’10, pp 135–146. ACM
Morihata A, Emoto K, Matsuzaki K, Hu Z, Iwasaki H (2018) Optimizing declarative parallel distributed graph processing by using constraint solvers. In: Proceedings on functional and Logic Programming—14th International Symposium, FLOPS 2018, Lecture Notes in Computer Science, vol 10818. Springer, pp 166–181
Quamar A, Deshpande A, Lin JJ (2016) Nscale: neighborhood-centric large-scale graph analytics in the cloud. J VLDB 25(2):125–150
Salihoglu S, Widom J (2013) GPS: a graph processing system. In: Proceedings of the 25th International Conference on Scientific and Statistical Database Management, SSDBM, pp 22:1–22:12. ACM
Tian Y, Balmin A, Corsten SA, Tatikonda S, McPherson J (2013) From think like a vertex to think like a graph. Proc VLDB Endow 7(3):193–204
Tsourakakis C, Bonchi F, Gionis A, Gullo F, Tsiarli M (2013) Denser than the densest subgraph: extracting optimal quasi-cliques with quality guarantees. In: Proceedings of the 19th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD ’13, pp 104–112. ACM
Tung LD, Hu Z (2015) Towards systematic parallelization of graph transformations over Pregel. In: Proceedings of the 8th International Symposium on High-level Parallel Programming and Applications, HLPP ’15
Verma S, Leslie LM, Shin Y, Gupta I (2017) An experimental comparison of partitioning strategies in distributed graph processing. Proc VLDB Endow 10(5):493–504
Watts DJ, Strogatz SH (1998) Collective dynamics of small-world networks. Nature 393(6684):440–442
Yan D, Cheng J, Xing K, Lu Y, Ng W, Bu Y (2014) Pregel algorithms for graph connectivity problems with performance guarantees. Proc VLDB Endow 7(14):1821–1832
Acknowledgements
This work was supported by JSPS KAKENHI Grant Nos JP15K15974 and JP26280020.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Emoto, K., Sadahira, F. A DSL for graph parallel programming with vertex subsets. J Supercomput 76, 4998–5015 (2020). https://doi.org/10.1007/s11227-019-02821-w
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-019-02821-w