Large Scale Graph Processing in a Distributed Environment

  • Nitesh Upadhyay
  • Parita Patel
  • Unnikrishnan Cheramangalath
  • Y. N. Srikant
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10659)


Large graphs are widely used in real world graph analytics. Memory available in a single machine is usually inadequate to process these graphs. A good solution is to use a distributed environment. Typical programming styles used in existing distributed environment frameworks are different from imperative programming and difficult for programmers to adapt. Moreover, some graph algorithms having a high degree of parallelism ideally run on an accelerator cluster. Error prone and lower level programming methods (memory and thread management) available for such systems repel programmers from using such architectures. Existing frameworks do not deal with the accelerator clusters.

We propose a framework which addresses the previously stated deficiencies. Our framework automatically generates implementations of graph algorithms for distributed environments from the intuitive shared memory based code written in a high-level Domain Specific Language (DSL), Falcon. The framework analyses the intermediate representation, applies a set of optimizations and then generates Giraph code for a CPU cluster and MPI+OpenCL code for a GPU cluster. Experimental evaluations show efficiency and scalability of our framework.


Distributed architecture Accelerator Cross-platform Graph processing DSL Falcon 


  1. 1.
    Apache giraph project.
  2. 2.
  3. 3.
    Bader, D.A., Madduri, K.: GTgraph: a synthetic graph generator suite. Atlanta, GA, February 2006Google Scholar
  4. 4.
    Burtscher, M., Nasre, R., Pingali, K.: A quantitative study of irregular programs on GPUs. In: Workload Characterization (IISWC), pp. 141–151. IEEE (2012)Google Scholar
  5. 5.
    Gerbessiotis, A.V., Valiant, L.G.: Direct bulk-synchronous parallel algorithms. In: Nurmi, O., Ukkonen, E. (eds.) SWAT 1992. LNCS, vol. 621, pp. 1–18. Springer, Heidelberg (1992). CrossRefGoogle Scholar
  6. 6.
    Gharaibeh, A., Reza, T., Santos-Neto, E., Costa, L.B., Sallinen, S., Ripeanu, M.: Efficient large-scale graph processing on hybrid CPU and GPU systems. arXiv preprint arXiv:1312.3018 (2013)
  7. 7.
    Gonzalez, J.E., Low, Y., Gu, H., Bickson, D., Guestrin, C.: PowerGraph: distributed graph-parallel computation on natural graphs. In: OSDI, vol. 12, p. 2 (2012)Google Scholar
  8. 8.
    Gregor, D., Lumsdaine, A.: The parallel BGL: a generic library for distributed graph computations. In: POOSC (2005)Google Scholar
  9. 9.
    Hong, S., Chafi, H., Sedlar, E., Olukotun, K.: Green-Marl: a DSL for easy and efficient graph analysis. In: ACM SIGARCH Computer Architecture News, vol. 40, pp. 349–362. ACM (2012)Google Scholar
  10. 10.
    Hong, S., Salihoglu, S., Widom, J., Olukotun, K.: Simplifying scalable graph processing with a domain-specific language. In: CGO. ACM (2014)Google Scholar
  11. 11.
    Karypis, G., Kumar, V.: A fast and high quality multilevel scheme for partitioning irregular graphs. SIAM J. Sci. Comput. 20(1), 359–392 (1998)MathSciNetCrossRefzbMATHGoogle Scholar
  12. 12.
    Kulkarni, M., Pingali, K., Walter, B., Ramanarayanan, G., Bala, K., Chew, L.P.: Optimistic parallelism requires abstractions. ACM SIGPLAN Not. 42(6), 211–222 (2007)CrossRefGoogle Scholar
  13. 13.
    Low, Y., Bickson, D., Gonzalez, J., Guestrin, C., Kyrola, A., Hellerstein, J.M.: Distributed GraphLab: a framework for machine learning and data mining in the cloud. Proc. VLDB Endow. 5(8), 716–727 (2012)CrossRefGoogle Scholar
  14. 14.
    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: Proceedings of the 2010 ACM SIGMOD ICMD, pp. 135–146. ACM (2010)Google Scholar
  15. 15.
    Pingali, K., Nguyen, D., Kulkarni, M., Burtscher, M., Hassaan, M.A., Kaleem, R., Lee, T.H., Lenharth, A., Manevich, R., Méndez-Lojo, M., et al.: The tao of parallelism in algorithms. ACM Sigplan Not. 46(6), 12–25 (2011)CrossRefGoogle Scholar
  16. 16.
    Shashidhar, G., Nasre, R.: LightHouse: an automatic code generator for graph algorithms on GPUs. In: Ding, C., Criswell, J., Wu, P. (eds.) LCPC 2016. LNCS, vol. 10136, pp. 235–249. Springer, Cham (2017). CrossRefGoogle Scholar
  17. 17.
    Simmhan, Y., Kumbhare, A., Wickramaarachchi, C., Nagarkar, S., Ravi, S., Raghavendra, C., Prasanna, V.: GoFFish: a sub-graph centric framework for large-scale graph analytics. In: Silva, F., Dutra, I., Santos Costa, V. (eds.) Euro-Par 2014. LNCS, vol. 8632, pp. 451–462. Springer, Cham (2014). Google Scholar
  18. 18.
    Unnikrishnan, C., Nasre, R., Srikant, Y.: Falcon: a graph manipulation language for heterogeneous systems. ACM TACO 12(4), 54:1–54:27 (2016)Google Scholar
  19. 19.
    Zhong, J., He, B.: Medusa: simplified graph processing on GPUs. TPDS 25(6), 1543–1552 (2014)MathSciNetGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Indian Institute of ScienceBangaloreIndia

Personalised recommendations