Abstract
Centrality measures or indicators of centrality identify most relevant nodes of graphs. Although optimized algorithms exist for computing of most of them, they are still time consuming and are even infeasible to apply to big enough graphs like the ones representing social networks or extensive enough computer networks. In this paper, we present a parallel implementation in C language of some optimal algorithms for computing of some indicators of centrality. Our parallel version greatly reduces the execution time of their sequential (non-parallel) counterpart. The proposed solution relies on threading, allowing for a theoretical improvement in performance close to the number of logical processors (cores) of the single computer in which it is running. Our software has been tested in several platforms, including the supercomputer Calendula, in which we achieved execution times close to 18 times faster when running our parallel implementation instead of our sequential one. Our solution is multi-platform and portable, working on any machine with several logical processor which is capable of compiling and running C language code.
Similar content being viewed by others
References
Amdahl GM (1967) Validity of the single processor approach to achieving large scale computing capabilities. In: Proceedings of the 18–20 April 1967, Spring Joint Computer Conference, ACM, pp 483–485
Arefin AS, Berretta R, Moscato P (2013) A GPU-based method for computing eigenvector centrality of gene-expression networks. In: Proceedings of the Eleventh Australasian Symposium on Parallel and Distributed Computing-Volume 140, Australian Computer Society, Inc., pp 3–11
Awerbuch B, Bar-Noy A, Gopal M (1994) Approximate distributed bellman-ford algorithms. IEEE Trans Commun 42(8):2515–2517
Bader DA, Madduri K (2006) Parallel algorithms for evaluating centrality indices in real-world networks. In: International Conference on Parallel Processing. ICPP 2006. IEEE, pp 539–550
Bader DA, Madduri K (2008a) A graph-theoretic analysis of the human protein-interaction network using multicore parallel algorithms. Parallel Comput 34(11):627–639
Bader DA, Madduri K (2008b) Snap, small-world network analysis and partitioning: an open-source parallel graph framework for the exploration of large-scale networks. In: IEEE International Symposium on Parallel and Distributed Processing. IPDPS 2008. IEEE, pp 1–12
Baglioni M, Geraci F, Pellegrini M, Lastres E (2012) Fast exact computation of betweenness centrality in social networks. In: Proceedings of the 2012 International Conference on Advances in Social Networks Analysis and Mining (ASONAM 2012). IEEE Computer Society, pp 450–456
Bonacich P (2007) Some unique properties of eigenvector centrality. Soc Netw 29(4):555–564
Brandes U (2001) A faster algorithm for betweenness centrality. J Math Sociol 25(2):163–177
Brandes U, Pich C (2007) Centrality estimation in large networks. Int J Bifurc Chaos 17(07):2303–2318
Cass S (2015) The 2017 top programming languages-IEEE spectrum. IEEE Spectrum: Technology, Engineering, and Science News. https://spectrum.ieee.org/computing/software/the-2017-topprogramming-languages. Accessed 10 April 2017
Cherkassky BV, Goldberg AV, Radzik T (1996) Shortest paths algorithms: theory and experimental evaluation. Math Program 73(2):129–174
Crauser A, Mehlhorn K, Meyer U, Sanders P (1998) A parallelization of Dijkstra’s shortest path algorithm. In: International Symposium on Mathematical Foundations of Computer Science. Springer, pp 722–731
Davidson AA, Baxter S, Garland M, Owens JD (2014) Work-efficient parallel GPU methods for single-source shortest paths. In: Proceedings of 2014 IEEE 28th International Parallel and Distributed Processing Symposium, IEEE, pp 349–359
Dijkstra EW (1959) A note on two problems in connexion with graphs. Numer Math 1(1):269–271
Eager DL, Zahorjan J, Lazowska ED (1989) Speedup versus efficiency in parallel systems. IEEE Trans Comput 38(3):408–423
Edmonds N, Hoefler T, Lumsdaine A (2010) A space-efficient parallel algorithm for computing betweenness centrality in distributed memory. In: 2010 International Conference on High Performance Computing (HiPC), IEEE, pp 1–10
Floyd RW (1962) Algorithm 97: shortest path. Commun ACM 5(6):345
García JF, Carriegos MV, Balsa J, Sánchez F, Fernández M, Fernández A, Cadenas C, Rodríguez J, Lebedev V (2017) C secure coding standards performance: Cmu sei cert vs misra. In: III Jornadas Nacionales de Investigacion en Ciberseguridad, JNIC2017, Servicio de Publicaciones de la URJC, pp 168–169
Gleich D (2008) Matlab bgl. matlab central
Green O, Bader DA (2013) Faster betweenness centrality based on data structure experimentation. Proc Comput Sci 18:399–408
Green O, McColl R, Bader DA (2012) A fast algorithm for streaming betweenness centrality. In: 2012 International Conference on Privacy, Security, Risk and Trust (PASSAT), and 2012 International Conference on Social Computing (SocialCom), IEEE, pp 11–20
Kandemir M, Choudhary A, Ramanujam J, Banerjee P (1998) A matrix-based approach to the global locality optimization problem. In: 1998 International Conference on Parallel Architectures and Compilation Techniques. Proceedings. IEEE, pp 306–313
Kandemir M, Ramanujam J, Choudhary A (1999) Improving cache locality by a combination of loop and data transformations. IEEE Trans Comput 48(2):159–167
Kang U, Papadimitriou S, Sun J, Tong H (2011) Centralities in large networks: algorithms and observations. In: Proceedings of the 2011 SIAM International Conference on Data Mining. SIAM, pp 119–130
Katz L (1953) A new status index derived from sociometric analysis. Psychometrika 18(1):39–43
Kowarschik M, Weiß C (2003) An overview of cache optimization techniques and cache-aware numerical algorithms. In: Meyer U, Sanders P, Sibeyn J (eds) Algorithms for memory hierarchies, vol 2625. Springer, Berlin, pp 213–232
Kumar VP, Gupta A (1994) Analyzing scalability of parallel algorithms and architectures. J Parallel Distrib Comput 22(3):379–391
Lee VW, Kim C, Chhugani J, Deisher M, Kim D, Nguyen AD, Satish N, Smelyanskiy M, Chennupaty S, Hammarlund P (2010) Debunking the 100\(\times \) GPU vs. CPU myth: an evaluation of throughput computing on CPU and GPU. ACM SIGARCH Comput Architect News 38(3):451–460
Lohmann G, Margulies DS, Horstmann A, Pleger B, Lepsien J, Goldhahn D, Schloegl H, Stumvoll M, Villringer A, Turner R (2010) Eigenvector centrality mapping for analyzing connectivity patterns in fmri data of the human brain. PLoS ONE 5(4):e10232
Madduri K, Ediger D, Jiang K, Bader DA, Chavarria-Miranda D (2009) A faster parallel algorithm and efficient multithreaded implementations for evaluating betweenness centrality on massive datasets. In: IEEE International Symposium on Parallel & Distributed Processing. IPDPS 2009. IEEE, pp 1–8
Mahapatra NR, Venkatrao B (1999) The processor-memory bottleneck: problems and solutions. Crossroads 5(3es):2
McLaughlin A, Bader DA (2014) Scalable and high performance betweenness centrality on the GPU. In: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE Press, pp 572–583
Newman ME (2006) Modularity and community structure in networks. Proc Natl Acad Sci 103(23):8577–8582
Pande P, Bader DA (2011) Computing betweenness centrality for small world networks on a GPU. In: 15th Annual High Performance Embedded Computing Workshop (HPEC)
Patterson DA, Hennessy JL, Goldberg D (1990) Computer architecture: a quantitative approach, vol 2. Morgan Kaufmann, San Mateo
Pusukuri KK, Gupta R, Bhuyan LN (2011) Thread reinforcer: dynamically determining number of threads via os level monitoring. In: 2011 IEEE International Symposium on Workload Characterization (IISWC). IEEE, pp 116–125
Sariyüce AE, Kaya K, Saule E, Çatalyürek ÜV (2013) Betweenness centrality on gpus and heterogeneous architectures. In: Proceedings of the 6th Workshop on General Purpose Processor Using Graphics Processing Units. ACM, pp 76–85
Shi Z, Zhang B (2011) Fast network centrality analysis using gpus. BMC Bioinform 12(1):149
Sriram A, Gautham K, Kothapalli K, Narayan P, Govindarajulu R (2009) Evaluating centrality metrics in real-world networks on gpu. In: 16th Annual International Conference on High Performance Computing-HiPC 2009 Student Research Symposium. https://hipc.org/hipc2009/documents/HIPCSS09Papers/1569256361.pdf. Accessed 26 Oct 2018
Tan G, Tu D, Sun N (2009) A parallel algorithm for computing betweenness centrality. In: International Conference on Parallel Processing. ICPP’09. IEEE, pp 340–347
Trobajo M, Cifuentes-Rodríguez J, Carriegos M (2018) On dynamic network security: a random decentering algorithm on graphs. Open Math 16(1):656–668
Wong KC, Wu CH, Mok RK, Peng C, Zhang Z (2012) Evolutionary multimodal optimization using the principle of locality. Inf Sci 194:138–170
Author information
Authors and Affiliations
Corresponding author
Additional information
This work has been partially supported by the Spanish National Cybersecurity Institute (Instituto Nacional de Ciberseguridad, INCIBE). This research uses the resources of the Centro de Supercomputación de Castilla y León (SCAYLE, www.scayle.es), funded by the “European Regional Development Fund (ERDF)”
Rights and permissions
About this article
Cite this article
García, J.F., Carriegos, M.V. On parallel computation of centrality measures of graphs. J Supercomput 75, 1410–1428 (2019). https://doi.org/10.1007/s11227-018-2654-5
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-018-2654-5