Abstract
The Louvain community detection algorithm is a hierarchal clustering method categorized in the NP-hard problem. Its execution time to find communities in large graphs is, therefore, a challenge. Parallelization is an effective solution for amortizing Louvain's execution time. In this paper, we propose an adaptive CUDA Louvain method (ACLM) algorithm that benefits from the graphic processing unit (GPU). ACLM uses the shared memory in GPU, as well as the optimal number of threads in the GPU blocks. These features minimize parallelization overhead and accelerate the calculation of modularity parameters. The proposed algorithm allocates threads to each block based on the number of required streaming multiprocessors (SMs) and warps on GPU. The implementation results show that ACLM can effectively accelerate the execution time by 77% compared to the competitive method in the large graph benchmarks.
Similar content being viewed by others
References
Guendouz M, Amine A, Hamou RM (2017) discrete modified fireworks algorithm for community detection in complex networks. Appl Intell 46:373–385. https://doi.org/10.1007/s10489-016-0840-9
Fortunato S (2010) Community detection in graphs. Phys Rep 486:75–174. https://doi.org/10.1016/j.physrep.2009.11.002
Newman MEJ, Girvan M (2004) Finding and evaluating community structure in networks. Phys Rev E 69:026113. https://doi.org/10.1103/PhysRevE.69.026113
Clauset A, Newman MEJ, Moore C (2004) Finding community structure in very large networks. Phys Rev E 70:066111. https://doi.org/10.1103/PhysRevE.70.066111
Brandes U, Delling D, Gaertler M, Gorke R, Hoefer M, Nikoloski Z, Wagner D (2008) On modularity clustering. IEEE Trans Knowl Data Eng 20:172–188. https://doi.org/10.1109/TKDE.2007.190689
Blondel VD, Guillaume JL, Lambiotte R, Lefebvre E (2008) Fast unfolding of communities in large networks. J Stat Mech 10:P10008. https://doi.org/10.1088/1742-5468/2008/10/P10008
Moradi E, Fazlali M, Tabatabaee Malazi H (2015) Fast parallel community detection algorithm based on modularity. In: 2015 18th CSI international symposium on computer architecture and digital systems (CADS). IEEE. https://doi.org/10.1109/CADS.2015.7377794
Staudt CL, Meyerhenke H (2013) Engineering parallel algorithms for community detection in massive networks. In: Proceedings of the 42nd International Conference on Parallel Processing. https://doi.org/10.1109/ICPP.2013.27
Cheong CY, Huynh HP, Lo D, Goh RSM (2013) Hierarchical parallel algorithm for modularity-based community detection using GPUs. In: Proceedings of the 19th International Conference on Parallel Processing, Euro-Par'13. Springer, Berlin, pp 775–787. https://doi.org/10.1007/978-3-642-40047-6_77
Lu H, Halappanavar M, Kalyanaraman A (2015) Parallel heuristics for scalable community detection. Parallel Comput 47:19–37. https://doi.org/10.1016/j.parco.2015.03.003
Fazlali M, Moradi E, Tabatabaee Malazi H (2017) Adaptive parallel Louvain community detection on a multicore platform. Microprocess Microsyst 54:26–34. https://doi.org/10.1016/j.micpro.2017.08.002
Zeng J, Yu H (2018) A scalable distributed Louvain algorithm for large-scale graph community detection. In: 2018 IEEE International Conference on Cluster Computing (CLUSTER). https://doi.org/10.1109/CLUSTER.2018.00044
Forster R (2016) Louvain community detection with parallel heuristics on GPUs. In: IEEE 20th Jubilee International Conference on Intelligent Engineering Systems (INES), Budapest, Hungary, 30 June–2 July. https://doi.org/10.1109/INES.2016.7555126
Erdos P, Renyi A (1960) On the evolution of random graphs. Publ Math Inst Hung Acad Sci 5:17–61
Rezapoor Mirsaleh M, Meybodi MR (2016) A Michigan memetic algorithm for solving the community detection problem in complex network. Neurocomputing 214:535–545. https://doi.org/10.1016/j.neucom.2016.06.030
Newman MEJ (2006) Modularity and community structure in networks. Proc Natl Acad Sci 103:8577–8582. https://doi.org/10.1073/pnas.0601602103
Holmström E, Bock N, Brännlund J (2009) Modularity density of network community divisions. Physica D 238:1161–1167. https://doi.org/10.1016/j.physd.2009.03.015
Zhao Y (2017) A survey on theoretical advances of community detection in networks. WIREs Comput Stat e1403:1–13. https://doi.org/10.1002/wics.1403
Khan BS, Niazi MA (2017) Network community detection: a review and visual survey. arXiv preprint: arXiv:1708.00977
Chakraborty T, Dalmia A, Mukherjee A, Ganguly N (2017) Metrics for community analysis: a survey. ACM Comput Surv 50:1–37. https://doi.org/10.1145/3091106
Ghosh S, Halappanavar M, Tumeo A, Kalyanaraman A, Lu H, Chavarria-Miranda D, Khan A, Gebremedhin A (2018) Distributed louvain algorithm for graph community detection. In: 2018 IEEE international parallel and distributed processing symposium (IPDPS), pp 885–895. https://doi.org/10.1109/IPDPS.2018.00098
Ozaki N, Tezuka H, Inaba M (2016) A simple acceleration method for the Louvain algorithm. Int J Comput Electr Eng 8:207–218. https://doi.org/10.17706/ijcee.2016.8.3.207-218
Lancichinetti A, Fortunato S, Radicchi F (2008) Benchmark graphs for testing community detection algorithms. Phys Rev E 78:046110. https://doi.org/10.1103/PhysRevE.78.046110
Gutiérrez I, Gómez D, Castro J, Espínola R (2019) A new community detection algorithm based on fuzzy measures. In: International Conference on Intelligent and Fuzzy Systems, pp 133–140. https://doi.org/10.1007/978-3-030-23756-1_18
Traag VA (2015) Faster unfolding of communities: speeding up the Louvain algorithm. Phys Rev E 92:032801. https://doi.org/10.1103/PhysRevE.92.032801
Carnivali GS, Vieira AB, Ziviani A, Esquef PAA (2020) CoVeC: coarse-grained vertex clustering for efficient community detection in sparse complex networks. Inf Sci. https://doi.org/10.1016/j.ins.2020.03.004
Bhowmick S, Srinivasan S (2013) A template for parallelizing the louvain method for modularity maximization. Dyn Complex Netw 2:111–124. https://doi.org/10.1007/978-1-4614-6729-8_6
Staudt CL, Meyerhenke H (2016) Engineering parallel algorithms for community detection in massive networks. Parallel Distrib Syst IEEE Trans 27:171–184. https://doi.org/10.1109/TPDS.2015.2390633
Raghavan UN, Albert R, Kumara S (2007) Near linear time algorithm to detect community structures in large-scale networks. Phys Rev E 76:036106. https://doi.org/10.1103/PhysRevE.76.036106
Shao J, Han Z, Yang Q, Zhou T (2015) Community detection based on distance dynamics. In: Proceedings of the 21st ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, New York, pp 1075–1084. http://dx.doi.org/https://doi.org/10.1145/2783258.2783301
Naim Md, Manne F, Halappanavar M, Tumeo A (2017) Community detection on the GPU. In: 2017 IEEE international parallel and distributed processing symposium. https://doi.org/10.1109/IPDPS.2017.16
Newman MEJ (2004) Fast algorithm for detecting community structure in networks. Phys Rev E 69:066133. https://doi.org/10.1103/PhysRevE.69.066133
Zhang L, Wahib M, Zhang H, Matsuoka S (2020) A study of single and multi-device synchronization methods in Nvidia GPUs. In: IEEE international parallel & distributed processing symposium 2020.
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
Mohammadi, M., Fazlali, M. & Hosseinzadeh, M. Accelerating Louvain community detection algorithm on graphic processing unit. J Supercomput 77, 6056–6077 (2021). https://doi.org/10.1007/s11227-020-03510-9
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-020-03510-9