Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

iSpan: Parallel Identification of Strongly Connected Components with Spanning Trees

Published: 18 August 2022 Publication History
  • Get Citation Alerts
  • Abstract

    Detecting strongly connected components (SCCs) in a directed graph is crucial for understanding the structure of graphs. Most real-world graphs have one large SCC that contains the majority of the vertices as well as many small SCCs whose sizes are reversely proportional to the frequency of their occurrences. For both types of SCCs, current approaches that rely on depth first search (DFS) or breadth first search (BFS) face the challenges of both strict synchronization requirements and high computation cost. In this article, we advocate a new paradigm of identifying SCCs with simple spanning trees since SCC detection requires only the knowledge of connectivity among the vertices. We have developed a prototype called iSpan, which consists of parallel, relaxed synchronization construction of spanning trees for detecting large and small SCCs combined with fast trims for small SCCs. We further scale iSpan to the distributed memory system by applying different distribution strategies to the data and task parallel jobs. Not limited, we also extend iSpan to the GPU architecture. The evaluations show that iSpan is able to significantly outperform current state-of-the-art DFS- and BFS-based methods by an average 18× and 4×, respectively.

    References

    [1]
    Umut A. Acar, Arthur Charguéraud, and Mike Rainey. 2015. A work-efficient algorithm for parallel unordered-first search. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC’15), Austin, Texas. ACM, 67.
    [2]
    Alfred V. Aho, Jeffrey D. Ullman, and John E. Hopcroft. 1983. Data structures and algorithms. Addison-Wesley, USA.
    [3]
    Junya Arai, Hiroaki Shiokawa, Takeshi Yamamuro, Makoto Onizuka, and Sotetsu Iwamura. 2016. Rabbit order: Just-in-time parallel reordering for fast graph analysis. In 2016 IEEE International Parallel and Distributed Processing Symposium, Chicago, Illinois USA. IEEE, 22–31.
    [4]
    David A. Bader and Kamesh Madduri. 2006. Gtgraph: A synthetic graph generator suite. Technical Report, Georgia Institute of Technology, Atlanta, GA USA.
    [5]
    Jiří Barnat, Petr Bauch, Luboš Brim, and Milan Ceska. 2011. Computing strongly connected components in parallel on CUDA. In International Parallel and Distributed Processing Symposium (IPDPS’11), Anchorage, Alaska USA. IEEE, 544–555.
    [6]
    Scott Beamer, Krste Asanovic, and David Patterson. 2012. Direction-optimizing breadth-first search. In International Conference for High Performance Computing, Networking, Storage and Analysis (SC’12), Boston, Massachusetts USA. IEEE, 1–10.
    [7]
    Scott Beamer, Aydin Buluc, Krste Asanovic, and David Patterson. 2013. Distributed memory breadth-first search revisited: Enabling bottom-up search. In 2013 IEEE 27th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW’13), Boston, Massachusetts USA. IEEE, 1618–1627.
    [8]
    Tal Ben-Nun, Michael Sutton, Sreepathi Pai, and Keshav Pingali. 2017. Groute: An asynchronous multi-GPU programming model for irregular computations. In ACM SIGPLAN Notices, Vol. 52, New York, NY, USA. ACM, 235–248.
    [9]
    Maciej Besta, Florian Marending, Edgar Solomonik, and Torsten Hoefler. SlimSell: A vectorizable graph representation for breadth-first search. In 2017 IEEE International Parallel and Distributed Processing Symposium (IPDPS). IEEE, Orlando, Florida USA, 32–41.
    [10]
    Vincent Bloemen, Alfons Laarman, and Jaco van de Pol. 2016. Multi-core on-the-fly SCC decomposition. In Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’16), Barcelona, Spain. ACM, 8.
    [11]
    Andrei Broder, Ravi Kumar, Farzin Maghoul, Prabhakar Raghavan, Sridhar Rajagopalan, Raymie Stata, Andrew Tomkins, and Janet Wiener. 2000. Graph structure in the web. Computer Networks 33, 1 (2000), 309–320.
    [12]
    Aydin Buluç, Jeremy T. Fineman, Matteo Frigo, John R. Gilbert, and Charles E. Leiserson. 2009. Parallel sparse matrix-vector and matrix-transpose-vector multiplication using compressed sparse blocks. In Proceedings of the 21st Annual Symposium on Parallelism in Algorithms and Architectures (SPAA’09), Calgary, Canada. ACM, 233–244.
    [13]
    Aydin Buluç and Kamesh Madduri. 2011. Parallel breadth-first search on distributed memory systems. In Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, seattle, Washington USA. ACM, 65.
    [14]
    Karen D. Devine, Erik G. Boman, Robert T. Heaphy, Rob H. Bisseling, and Umit V. Catalyurek. 2006. Parallel hypergraph partitioning for scientic computing. In Proceedings 20th IEEE International Parallel & Distributed Processing Symposium. IEEE, Rhodes, Greece, 10–pp.
    [15]
    Shrinivas Devshatwar, Madhur Amilkanthwar, and Rupesh Nasre. 2016. GPU centric extensions for parallel strongly connected components computation. In Proceedings of the 9th Annual Workshop on General Purpose Processing Using Graphics Processing Unit (GPGPU’16), Barcelona, Spain. ACM, 2–11.
    [16]
    James A. Edwards and Uzi Vishkin. 2012. Better speedups using simpler parallel programming for graph connectivity and biconnectivity. In Proceedings of the 2012 International Workshop on Programming Models and Applications for Multicores and Manycores, New Orleans, Louisiana USA. ACM, 103–114.
    [17]
    Wenfei Fan, Jianzhong Li, Shuai Ma, Hongzhi Wang, and Yinghui Wu. 2010. Graph homomorphism revisited for graph matching. Proceedings of the VLDB Endowment 3, 1–2 (2010), 1161–1172.
    [18]
    Lisa K. Fleischer, Bruce Hendrickson, and Ali Pınar. 2000. On identifying strongly connected components in parallel. In International Parallel and Distributed Processing Symposium (IPDPS’00), Cancun, Mexico. Springer, 505–511.
    [19]
    Mark Harris, Shubhabrata Sengupta, and John D. Owens. 2007. Parallel prefix sum (scan) with CUDA. GPU gems 3, 39 (2007), 851–876.
    [20]
    Ramin Hojati, Robert K. Brayton, and Robert P. Kurshan. 1993. BDD-based debugging of designs using language containment and fair CTL. In International Conference on Computer Aided Verification (CAV’93), Elounda, Greece. Springer, 41–58.
    [21]
    Sungpack Hong, Nicole C. Rodia, and Kunle Olukotun. 2013. On fast parallel detection of strongly connected components (SCC) in small-world graphs. In Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis. ACM, Denver, Colorado USA, 1–11.
    [22]
    Jayadharini Jaiganesh and Martin Burtscher. 2018. A high-performance connected components implementation for GPUs. In Proceedings of the 27th International Symposium on High-Performance Parallel and Distributed Computing. ACM, Tempe, Arizona USA, 92–104.
    [23]
    Yuede Ji and H. Howie Huang. 2020. Aquila: Adaptive parallel computation of graph connectivity queries. In Proceedings of the 29th International Symposium on High-Performance Parallel and Distributed Computing. ACM, Stockholm, Sweden, 149–160.
    [24]
    Yuede Ji, Hang Liu, and H. Howie Huang. 2020. Swarmgraph: Analyzing large-scale in-memory graphs on gpus. In 2020 IEEE 22nd International Conference on High Performance Computing and Communications; IEEE 18th International Conference on Smart City; IEEE 6th International Conference on Data Science and Systems (HPCC/SmartCity/DSS). IEEE, Fiji, 52–59.
    [25]
    Konstantinos I. Karantasis, Andrew Lenharth, Donald Nguyen, María J. Garzarán, and Keshav Pingali. 2014. Parallelization of reordering algorithms for bandwidth and wavefront reduction. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis, New Orleans, Louisiana USA. IEEE Press, 921–932.
    [26]
    Ravi Kumar, Jasmine Novak, and Andrew Tomkins. 2010. Structure and evolution of online social networks. In Link mining: Models, algorithms, and applications, New York, NY. Springer, 337–357.
    [27]
    Jérôme Kunegis. 2013. Konect: The Koblenz network collection. In Proceedings of the 22nd International Conference on World Wide Web (WWW’13), Rio de Janeiro, Brazil. ACM, 1343–1350.
    [28]
    Dominique LaSalle, Md Mostofa Ali Patwary, Nadathur Satish, Narayanan Sundaram, Pradeep Dubey, and George Karypis. 2015. Improving graph partitioning for modern graphs and architectures. In Proceedings of the 5th Workshop on Irregular Applications: Architectures and Algorithms, Austin, Texas USA. ACM, 14.
    [29]
    Jure Leskovec and Andrej Krevl. 2014. SNAP Datasets: Stanford Large Network Dataset Collection. Retrieved July 11, 2022 from http://snap.stanford.edu/data.
    [30]
    Hang Liu and H. Howie Huang. 2015. Enterprise: Breadth-first graph traversal on GPUs. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC’15), Austin, Texas. ACM, 68.
    [31]
    Hang Liu, H. Howie Huang, and Yang Hu. 2016. iBFS: Concurrent breadth-first search on GPUs. In Proceedings of the 2016 International Conference on Management of Data (SIGMOD), San Francisco, California USA. ACM, 403–416.
    [32]
    William Mclendon III, Bruce Hendrickson, Steven J. Plimpton, and Lawrence Rauchwerger. 2005. Finding strongly connected components in distributed graphs. Journal of Parallel and Distributed Computing 65, 8 (2005), 901–910.
    [33]
    Duane Merrill, Michael Garland, and Andrew Grimshaw. 2012. Scalable GPU graph traversal. In ACM SIGPLAN Notices, Vol. 47. ACM, Philadelphia, Pennsylvania USA, 117–128.
    [34]
    Alan Mislove, Hema Swetha Koppula, Krishna P. Gummadi, Peter Druschel, and Bobby Bhattacharjee. 2008. Growth of the Flickr social network. In Proceedings of the Workshop on Online Social Networks. ACM, Seattle, WA USA, 25–30.
    [35]
    Mark E. J. Newman. 2003. The structure and function of complex networks. SIAM Review 45, 2 (2003), 167–256.
    [36]
    Donald Nguyen, Andrew Lenharth, and Keshav Pingali. 2013. A lightweight infrastructure for graph analytics. In Proceedings of the T24th ACM Symposium on Operating Systems Principles. ACM, Farminton, Pennsylvania USA, 456–471.
    [37]
    Simona Mihaela Orzan. 2004. On Distributed Verification and Verified Distribution. Ph.D. Dissertation. Vrije Universiteit, Amsterdam, Netherlands.
    [38]
    John H. Reif. 1985. Depth-first search is inherently sequential. Information Processing Letters 20, 5 (1985), 229–234.
    [39]
    Nadathur Satish, Changkyu Kim, Jatin Chhugani, and Pradeep Dubey. 2012. Large-scale energy-efficient graph traversal: A path to efficient data-intensive supercomputing. In 2012 International Conference for High Performance Computing, Networking, Storage and Analysis (SC’12), Salt Lake City, Utah USA. IEEE, 1–11.
    [40]
    Zechao Shang, Feifei Li, Jeffrey Xu Yu, Zhiwei Zhang, and Hong Cheng. 2016. Graph analytics through fine-grained parallelism. In Proceedings of the 2016 International Conference on Management of Data (SIGMOD), San Francisco, California USA. ACM, 463–478.
    [41]
    Julian Shun and Guy E. Blelloch. 2013. Ligra: A lightweight graph processing framework for shared memory. In Proceedings of the 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. ACM, Shenzhen China, 135–146.
    [42]
    George M. Slota and Kamesh Madduri. 2014. Simple parallel biconnectivity algorithms for multicore platforms. In 21st International Conference on High Performance Computing (HiPC’14), Goa, India. IEEE, 1–10.
    [43]
    George M. Slota, Sivasankaran Rajamanickam, and Kamesh Madduri. 2014. BFS and coloring-based parallel algorithms for strongly connected components and related problems. In International Parallel and Distributed Processing Symposium (IPDPS’14), Phoenix, AZ USA. IEEE, 550–559.
    [44]
    George M. Slota, Sivasankaran Rajamanickam, and Kamesh Madduri. 2016. A case study of complex graph analysis in distributed memory: Implementation and optimization. In 2016 IEEE International Parallel and Distributed Processing Symposium, Chicago, IL USA. IEEE, 293–302.
    [45]
    Sriram Srinivasan, Sanjukta Bhowmick, and Sajal Das. 2016. Application of Graph Sparsication in Developing Parallel Algorithms for Updating Connected Components. In 2016 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW). IEEE, Chicago, Illinois USA, 885–891.
    [46]
    Robert Tarjan. 1972. Depth-first search and linear graph algorithms. SIAM Journal on Computing 1, 2 (1972), 146–160.
    [47]
    Guozhang Wang, Wenlei Xie, Alan J. Demers, and Johannes Gehrke. 2013. Asynchronous large-scale graph processing made easy. In CIDR’13, Vol. 13, Asilomar, California USA. 3–6.
    [48]
    Duncan J. Watts and Steven H. Strogatz. 1998. Collective dynamics of small-world networks. Nature 393, 6684 (1998), 440–442.
    [49]
    Hao Wei, Jeffrey Xu Yu, Can Lu, and Xuemin Lin. 2016. Speedup graph processing by graph ordering. In Proceedings of the 2016 International Conference on Management of Data (SIGMOD), San Francisco, California USA. ACM, 1813–1828.
    [50]
    Da Yan, James Cheng, Kai Xing, Yi Lu, Wilfred Ng, and Yingyi Bu. 2014. Pregel algorithms for graph connectivity problems with performance guarantees. Proceedings of the VLDB Endowment 7, 14 (2014), 1821–1832.
    [51]
    Zhiwei Zhang, Jeffrey Xu Yu, Lu Qin, Lijun Chang, and Xuemin Lin. 2013. I/O efficient: Computing SCCs in massive graphs. In Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data, New York, USA. ACM, 181–192.
    [52]
    Andy Diwen Zhu, Wenqing Lin, Sibo Wang, and Xiaokui Xiao. 2014. Reachability queries on large dynamic graphs: A total order approach. In Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data (SIGMOD), Snowbird, Utah USA. ACM, 1323–1334.

    Cited By

    View all
    • (2024)A Granulation Strategy-Based Algorithm for Computing Strongly Connected Components in ParallelMathematics10.3390/math1211172312:11(1723)Online publication date: 31-May-2024
    • (2023)Incremental Connected Component Detection for Graph Streams on GPUElectronics10.3390/electronics1206146512:6(1465)Online publication date: 20-Mar-2023

    Index Terms

    1. iSpan: Parallel Identification of Strongly Connected Components with Spanning Trees

        Recommendations

        Comments

        Information & Contributors

        Information

        Published In

        cover image ACM Transactions on Parallel Computing
        ACM Transactions on Parallel Computing  Volume 9, Issue 3
        September 2022
        112 pages
        ISSN:2329-4949
        EISSN:2329-4957
        DOI:10.1145/3551658
        Issue’s Table of Contents

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        Published: 18 August 2022
        Online AM: 08 July 2022
        Accepted: 01 June 2022
        Revised: 01 June 2022
        Received: 01 April 2021
        Published in TOPC Volume 9, Issue 3

        Permissions

        Request permissions for this article.

        Check for updates

        Author Tags

        1. Strongly connected component
        2. spanning tree
        3. graph
        4. parallel computation
        5. GPU

        Qualifiers

        • Research-article
        • Refereed

        Funding Sources

        • National Science Foundation CAREER

        Contributors

        Other Metrics

        Bibliometrics & Citations

        Bibliometrics

        Article Metrics

        • Downloads (Last 12 months)140
        • Downloads (Last 6 weeks)17

        Other Metrics

        Citations

        Cited By

        View all
        • (2024)A Granulation Strategy-Based Algorithm for Computing Strongly Connected Components in ParallelMathematics10.3390/math1211172312:11(1723)Online publication date: 31-May-2024
        • (2023)Incremental Connected Component Detection for Graph Streams on GPUElectronics10.3390/electronics1206146512:6(1465)Online publication date: 20-Mar-2023

        View Options

        Get Access

        Login options

        Full Access

        View options

        PDF

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        Full Text

        View this article in Full Text.

        Full Text

        HTML Format

        View this article in HTML Format.

        HTML Format

        Media

        Figures

        Other

        Tables

        Share

        Share

        Share this Publication link

        Share on social media