Skip to main content

Palgol: A High-Level DSL for Vertex-Centric Graph Processing with Remote Data Access

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 10695))

Abstract

Pregel is a popular distributed computing model for dealing with large-scale graphs. However, it can be tricky to implement graph algorithms correctly and efficiently in Pregel’s vertex-centric model, especially when the algorithm has multiple computation stages, complicated data dependencies, or even communication over dynamic internal data structures. Some domain-specific languages (DSLs) have been proposed to provide more intuitive ways to implement graph algorithms, but due to the lack of support for remote access — reading or writing attributes of other vertices through references — they cannot handle the above mentioned dynamic communication, causing a class of Pregel algorithms with fast convergence impossible to implement.

To address this problem, we design and implement Palgol, a more declarative and powerful DSL which supports remote access. In particular, programmers can use a more declarative syntax called chain access to naturally specify dynamic communication as if directly reading data on arbitrary remote vertices. By analyzing the logic patterns of chain access, we provide a novel algorithm for compiling Palgol programs to efficient Pregel code. We demonstrate the power of Palgol by using it to implement several practical Pregel algorithms, and the evaluation result shows that the efficiency of Palgol is comparable with that of hand-written code.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    Palgol stands for Pregel algorithmic language. The system with all implementation code and test examples is available at https://bitbucket.org/zyz915/palgol.

  2. 2.

    http://www.cse.cuhk.edu.hk/pregelplus/code/apps/basic/svplus.zip.

  3. 3.

    BCC is a complicated algorithm, whose efficient implementation requires constructing an intermediate graph, which is currently beyond Palgol’s capabilities. Palgol is powerful enough to express the rest of the algorithm, however.

  4. 4.

    http://www.cse.cuhk.edu.hk/pregelplus/code/apps/basic/bcc.zip.

  5. 5.

    http://www.cse.cuhk.edu.hk/pregelplus.

  6. 6.

    Palgol does not target a specific Pregel-like system. Instead, by properly implementing different backends of the compiler, Palgol can be transformed into any Pregel-like system, as long as the system supports the basic Pregel interfaces including message passing between arbitrary pairs of vertices and aggregators.

  7. 7.

    https://archive.is/o/cdGrj/konect.uni-koblenz.de/networks/facebook-sg.

  8. 8.

    http://konect.uni-koblenz.de/networks/dbpedia-link.

  9. 9.

    http://www.dis.uniroma1.it/challenge9/download.shtml.

References

  1. Chung, S., Condon, A.: Parallel implementation of Borůvka’s minimum spanning tree algorithm. In: IPPS, pp. 302–308. IEEE (1996)

    Google Scholar 

  2. Emoto, K., Matsuzaki, K., Morihata, A., Hu, Z.: Think like a vertex, behave like a function! A functional DSL for vertex-centric big graph processing. In: ICFP, pp. 200–213. ACM (2016)

    Google Scholar 

  3. Fard, A., Nisar, M.U., Ramaswamy, L., Miller, J.A., Saltz, M.: A distributed vertex-centric approach for pattern matching in massive graphs. In: BigData, pp. 403–411. IEEE (2013)

    Google Scholar 

  4. Gabow, H.N., Tarjan, R.E.: A linear-time algorithm for a special case of disjoint set union. J. Comput. System Sci. 30(2), 209–221 (1985)

    Article  MathSciNet  MATH  Google Scholar 

  5. Halpern, J.Y., Moses, Y.: Knowledge and common knowledge in a distributed environment. J. ACM 37(3), 549–587 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  6. Hong, S., Chafi, H., Sedlar, E., Olukotun, K.: Green-Marl: a DSL for easy and efficient graph analysis. In: ASPLOS, pp. 349–362. ACM (2012)

    Google Scholar 

  7. Hong, S., Salihoglu, S., Widom, J., Olukotun, K.: Simplifying scalable graph processing with a domain-specific language. In: CGO, p. 208. ACM (2014)

    Google Scholar 

  8. Lesniak, M.: Palovca: describing and executing graph algorithms in Haskell. In: Russo, C., Zhou, N.-F. (eds.) PADL 2012. LNCS, vol. 7149, pp. 153–167. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-27694-1_12

    Chapter  Google Scholar 

  9. Malewicz, G., Austern, M.H., Bik, A.J., Dehnert, J.C., Horn, I., Leiser, N., Czajkowski, G.: Pregel: a system for large-scale graph processing. In: SIGMOD, pp. 135–146. ACM (2010)

    Google Scholar 

  10. Quick, L., Wilkinson, P., Hardcastle, D.: Using Pregel-like large scale graph processing frameworks for social network analysis. In: ASONAM, pp. 457–463. IEEE (2012)

    Google Scholar 

  11. Ruiz, O.C., Matsuzaki, K., Sato, S.: s6raph: vertex-centric graph processing framework with functional interface. In: FHPC, pp. 58–64. ACM (2016)

    Google Scholar 

  12. Salihoglu, S., Widom, J.: Optimizing graph algorithms on Pregel-like systems. PVLDB 7(7), 577–588 (2014)

    Google Scholar 

  13. Tian, Y., Balmin, A., Corsten, S.A., Tatikonda, S., McPherson, J.: From think like a vertex to think like a graph. PVLDB 7(3), 193–204 (2013)

    Google Scholar 

  14. Valiant, L.G.: A bridging model for parallel computation. Commun. ACM 33(8), 103–111 (1990)

    Article  Google Scholar 

  15. Xie, M., Yang, Q., Zhai, J., Wang, Q.: A vertex centric parallel algorithm for linear temporal logic model checking in Pregel. J. Parallel Distrib. Com. 74(11), 3161–3174 (2014)

    Article  Google Scholar 

  16. Yan, D., Cheng, J., Lu, Y., Ng, W.: Blogel: a block-centric framework for distributed computation on real-world graphs. PVLDB 7(14), 1981–1992 (2014)

    Google Scholar 

  17. Yan, D., Cheng, J., Xing, K., Lu, Y., Ng, W., Bu, Y.: Pregel algorithms for graph connectivity problems with performance guarantees. PVLDB 7(14), 1821–1832 (2014)

    Google Scholar 

Download references

Acknowledgements

We thank Dr. Kento Emoto for his advice in the design of Palgol, Mr. Smith Dhumbumroong for his help in setting up the experiments, and the reviewers for their insightful comments to improve this paper. This work was supported by JSPS KAKENHI Grant Numbers 26280020 and 17H06099.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yongzhe Zhang .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Zhang, Y., Ko, HS., Hu, Z. (2017). Palgol: A High-Level DSL for Vertex-Centric Graph Processing with Remote Data Access. In: Chang, BY. (eds) Programming Languages and Systems. APLAS 2017. Lecture Notes in Computer Science(), vol 10695. Springer, Cham. https://doi.org/10.1007/978-3-319-71237-6_15

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-71237-6_15

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-71236-9

  • Online ISBN: 978-3-319-71237-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics