Skip to main content
Log in

An Improved/Optimized Practical Non-Blocking PageRank Algorithm for Massive Graphs*

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

PageRank kernel is a standard benchmark addressing various graph processing and analytical problems. The PageRank algorithm serves as a standard for many graph analytics and a foundation for extracting graph features and predicting user ratings in recommendation systems. The PageRank algorithm is an iterative algorithm that continuously updates the ranks of pages until it converges to a value. However, implementing the PageRank algorithm on a shared memory architecture while taking advantage of fine-grained parallelism with large-scale graphs is hard to implement. The experimental study and analysis of the parallel PageRank metric on large graphs and shared memory architectures using different programming models have been studied extensively. This paper presents the asynchronous execution of the PageRank algorithm to leverage the computations on massive graphs, especially on shared memory architectures. We evaluate the performance of our proposed non-blocking algorithms for PageRank computation on real-world and synthetic datasets using POSIX Multithreaded Library on a 56 core Intel(R) Xeon processor. We observed that our asynchronous implementations achieve \(10\times\) to \(30\times\) speed-up with respect to sequential runs and \(5\times\) to \(10\times\) improvements over synchronous variants.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

Notes

  1. https://github.com/PDCRL/PageRank.

References

  1. Gross, J., Yellen, J.: Graph Theory and Its Applications. CRC Press, Inc., Boca Raton (1999)

    MATH  Google Scholar 

  2. Page, L., Brin, S., Motwani, R., Winograd, T.: The PageRank Citation Ranking: Bringing Order to the Web. Technical Report 1999-66, previous number = SIDL-WP-1999-0120. Stanford InfoLab (1999). http://ilpubs.stanford.edu:8090/422/

  3. 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 International Conference on Management of Data, New York, NY, USA, pp 135–146 (2010). https://doi.org/10.1145/1807167.1807184

  4. Roy, A., Mihailovic, I., Zwaenepoel, W.: X-Stream: edge-centric graph processing using streaming partitions. In: Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles, SOSP ’13, pp. 472–488. Association for Computing Machinery, New York (2013). https://doi.org/10.1145/2517349.2522740

  5. Hong, S., Chafi, H., Sedlar, E., Olukotun, K.: Green-Marl: a DSL for easy and efficient graph analysis. In: ASPLOS XVII, pp. 349–362. Association for Computing Machinery, New York (2012). https://doi.org/10.1145/2150976.2151013

  6. Sidiroglou-Douskos, S., Misailovic, S., Hoffmann, H., Rinard, M.: Managing performance vs. accuracy trade-offs with loop perforation. In: ESEC/FSE ’11, pp. 124–134. Association for Computing Machinery, New York (2011). https://doi.org/10.1145/2025113.2025133

  7. Panyala, A., Subasi, O., Halappanavar, M., Kalyanaraman, A., Chavarr,ía-Miranda, D.G., Krishnamoorthy, S.: Approximate computing techniques for iterative graph algorithms. In: 24th IEEE International Conference on High Performance Computing, HiPC 2017, Jaipur, India, 18–21 December 2017, pp 23–32. IEEE Computer Society (2017). https://doi.org/10.1109/HiPC.2017.00013

  8. Vu, J.: The art of multiprocessor programming by Maurice Herlihy and Nir Shavit. ACM SIGSOFT Softw. Eng. Notes 36(5), 52–53 (2011). https://doi.org/10.1145/2020976.2021006

    Article  Google Scholar 

  9. Shun, J., Blelloch, G.E.: Ligra: a lightweight graph processing framework for shared memory. In: Nicolau, A., Shen, X., Amarasinghe, S.P., Vuduc, R.W. (eds) ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP ’13, Shenzhen, China, 23–27 February 2013, pp. 135–146. ACM (2013). https://doi.org/10.1145/2442516.2442530

  10. Garg, P., Kothapalli, K.: STIC-D: algorithmic techniques for efficient parallel PageRank computation on real-world graphs. In: Proceedings of the 17th International Conference on Distributed Computing and Networking, Singapore, 4–7 January 2016, pp. 15:1–15:10. ACM (2016). https://doi.org/10.1145/2833312.2833322

  11. Lakhotia, K., Kannan, R., Pati, S., Prasanna, V.K.: GPOP: a scalable cache- and memory-efficient framework for graph processing over parts. ACM Trans. Parallel Comput. 7(1), 7:1-7:24 (2020). https://doi.org/10.1145/3380942

    Article  Google Scholar 

  12. Barrett, B.W., Berry, J.W., Murphy, R.C., Wheeler, K.B.: Implementing a portable multi-threaded graph library: the MTGL on Qthreads. In: 23rd IEEE International Symposium on Parallel and Distributed Processing, IPDPS 2009, Rome, Italy, 23–29 May 2009, pp. 1–8. IEEE (2009). https://doi.org/10.1109/IPDPS.2009.5161102

  13. Low, Y., Gonzalez, J., Kyrola, A., Bickson, D., Guestrin, C., Hellerstein, J.M.: GraphLab: a new framework for parallel machine learning. In: Grünwald, P., Spirtes, P. (eds) UAI 2010, Proceedings of the Twenty-Sixth Conference on Uncertainty in Artificial Intelligence, Catalina Island, CA, USA, 8–11 July 2010, pp. 340–349. AUAI Press (2010). https://dslpitt.org/uai/displayArticleDetails.jsp?mmnu=1&smnu=2&article_id=2126&proceeding_id=26

  14. Mitliagkas, I., Borokhovich, M., Dimakis, A.G., Caramanis, C.: FrogWild!—fast PageRank approximations on graph engines. CoRR abs/1502.04281 (2015). arxiv:1502.04281

  15. Wang, G., Xie, W., Demers, A.J., Gehrke, J.: Asynchronous large-scale graph processing made easy. In: CIDR 2013, Sixth Biennial Conference on Innovative Data Systems Research, Online Proceedings, Asilomar, CA, USA, 6–9 January 2013 (2013). www.cidrdb.org, http://cidrdb.org/cidr2013/Papers/CIDR13_Paper58.pdf

  16. Nguyen, D., Lenharth, A., Pingali, K.: A lightweight infrastructure for graph analytics. In: Kaminsky, M., Dahlin, M. (eds) ACM SIGOPS 24th Symposium on Operating Systems Principles, SOSP ’13, Farmington, PA, USA, 3–6 November 2013, pp. 456–471. ACM (2013). https://doi.org/10.1145/2517349.2522739

  17. Beamer, S., Asanovic, K., Patterson, D.A.: Reducing PageRank communication via propagation blocking. In: 2017 IEEE International Parallel and Distributed Processing Symposium, IPDPS 2017, Orlando, FL, USA, 29 May–2 June 2017, pp. 820–831. IEEE Computer Society (2017). https://doi.org/10.1109/IPDPS.2017.112

  18. Omar, H., Ahmad, M., Khan, O.: GraphTuner: an input dependence aware loop perforation scheme for efficient execution of approximated graph algorithms. In: 2017 IEEE International Conference on Computer Design, ICCD 2017, Boston, MA, USA, 5–8 November 2017, pp. 201–208. IEEE Computer Society (2017). https://doi.org/10.1109/ICCD.2017.38

  19. Peng, Z., Powell, A., Wu, B., Bicer, T., Ren, B.: GraphPhi: efficient parallel graph processing on emerging throughput-oriented architectures. In: Evripidou, S., Stenström, P., O’Boyle, M.F.P. (eds) Proceedings of the 27th International Conference on Parallel Architectures and Compilation Techniques, PACT 2018, Limassol, Cyprus, 1–4 November 2018, pp. 9:1–9:14. ACM (2018). https://doi.org/10.1145/3243176.3243205

  20. Eedi, H., Peri, S., Ranabothu, N., Utkoor, R.: An efficient practical non-blocking PageRank algorithm for large scale graphs. In: 29th Euromicro International Conference on Parallel, Distributed and Network-Based Processing, PDP 2021, Valladolid, Spain, 10–12 March 2021, pp. 35–43. IEEE (2021). https://doi.org/10.1109/PDP52278.2021.00015

  21. Luo, L., Liu, Y.: Processing graphs with barrierless asynchronous parallel model on shared-memory systems. Future Gener. Comput. Syst. 106, 641–652 (2020). https://doi.org/10.1016/j.future.2020.01.033

    Article  Google Scholar 

  22. Chakrabarti, D., Zhan, Y., Faloutsos, C.: R-MAT: a recursive model for graph mining. In: Berry, M.W., Dayal, U., Kamath, C., Skillicorn, D.B. (eds) Proceedings of the Fourth SIAM International Conference on Data Mining, Lake Buena Vista, Florida, USA, 22–24 April 2004, pp. 442–446. SIAM (2004). https://doi.org/10.1137/1.9781611972740.43

  23. Leskovec, J., Krevl, A.: SNAP Datasets: Stanford large network dataset collection (2014). http://snap.stanford.edu/data

  24. Rossi, R.A., Ahmed, N.K.: The network data repository with interactive graph analytics and visualization. In: AAAI (2015). http://networkrepository.com

  25. Kumar, V., Grama, A., Gupta, A., Karypis, G.: Introduction to Parallel Computing: Design and Analysis of Algorithms. Benjamin-Cummings Publishing Co., Inc., San Francisco (1994)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Hemalatha Eedi.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

*This work is already submitted in the 2021 29th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP).

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Eedi, H., Karra, S., Peri, S. et al. An Improved/Optimized Practical Non-Blocking PageRank Algorithm for Massive Graphs*. Int J Parallel Prog 50, 381–404 (2022). https://doi.org/10.1007/s10766-022-00725-6

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10766-022-00725-6

Keywords

Navigation