🤖 AI Summary
Existing Python graph libraries (e.g., NetworkX, igraph) suffer from limited parallelism for large-scale graph community detection. To address this, we design and implement highly scalable parallel label propagation and Louvain algorithms atop the Arachne framework. Our approach innovatively integrates fine-grained task scheduling, memory locality optimization, and multi-threaded load balancing into Arachne, substantially improving concurrency efficiency. Experimental evaluation on standard benchmark graphs demonstrates speedups of up to 710×, 75×, and 12× over NetworkX, igraph, and NetworKit, respectively. Moreover, the proposed methods exhibit strong scalability with increasing numbers of threads and graph sizes. This work delivers an efficient, user-friendly parallel solution for community detection in large-scale graphs.
📝 Abstract
The rise of graph data in various fields calls for efficient and scalable community detection algorithms. In this paper, we present parallel implementations of two widely used algorithms: Label Propagation and Louvain, specifically designed to leverage the capabilities of Arachne which is a Python-accessible, open-source framework for large-scale graph analysis. Our implementations achieve substantial speedups over existing Python-based tools like NetworkX and igraph, which lack efficient parallelization, and are competitive with parallel frameworks such as NetworKit. Experimental results show that Arachne-based methods outperform these baselines, achieving speedups of up to 710x over NetworkX, 75x over igraph, and 12x over NetworKit. Additionally, we analyze the scalability of our implementation under varying thread counts, demonstrating how different phases contribute to overall performance gains of the parallel Louvain algorithm. Arachne, including our community detection implementation, is open-source and available at https://github.com/Bears-R-Us/arkouda-njit .