We present a new parallel algorithm for k-clique counting/listing that has polylogarithmic span (parallel time) and is workefficient (matches the work of the best sequential algorithm) for sparse graphs. Our algorithm is based on computing low out-degree orientations, which we present new linear-work and polylogarithmic-span algorithms for computing in parallel. We also present new parallel algorithms for producing unbiased estimations of clique counts using graph sparsification. Finally, we design two new parallel work-efficient algorithms for approximating the k-clique densest subgraph, the first of which is a 1/k-approximation and the second of which is a 1/(k(1 + ))-approximation and has polylogarithmic span. Our first algorithm does not have polylogarithmic span, but we prove that it solves a P-complete problem.In addition to the theoretical results, we also implement the algorithms and propose various optimizations to improve their practical performance. On a 30-core machine with two-way hyper-threading, our algorithms achieve 13.23-38.99x and 1.19-13.76x self-relative parallel speedup for k-clique counting and k-clique densest subgraph, respectively. Compared to the state-of-the-art parallel k-clique counting algorithms, we achieve up to 9.88x speedup, and compared to existing implementations of k-clique densest subgraph, we achieve up to 11.83x speedup. We are able to compute the 4-clique counts on the largest publicly-available graph with over two hundred billion edges for the first time.
Butterflies are the smallest non-trivial subgraph in bipartite graphs, and therefore having efficient computations for analyzing them is crucial to improving the quality of certain applications on bipartite graphs. In this paper, we design a framework called ParButterfly that produces new parallel algorithms for the following problems on processing butterflies: global counting, per-vertex counting, per-edge counting, tip decomposition (vertex peeling), and wing decomposition (edge peeling). The main component of these algorithms is combining wedges incident on subsets of vertices, and our framework allows us to use different methods for wedge aggregation, including combining via sorting, hashing, histogramming, and batching. Moreover, ranking the vertices can speed up butterfly counting, as we only need to consider wedges formed by a particular ordering of the vertices. ParButterfly supports different ways to rank the vertices, including side ordering, approximate and exact degree ordering, and approximate and exact complement coreness ordering. For counting, ParButterfly also supports both exact computation as well as approximate computation via graph sparsification. We prove strong theoretical guarantees on the work and give parallel running times of the algorithms as obtained in our framework.We perform a comprehensive evaluation of all of the algorithms obtained from ParButterfly on a collection of real-world bipartite graphs using a 48-core machine. Our algorithms obtain significant parallel speedup, outperforming the fastest sequential algorithms by up to 13.6x with a self-relative speedup of up to 38.5x. Compared to general subgraph counting solutions, we are orders of magnitude faster. arXiv:1907.08607v1 [cs.DC] 19 Jul 2019 2 The arboricity of a graph is defined to be the minimum number of disjoint forests that a graph can be partitioned into.
In this demonstration paper, we present the Graph Based Benchmark Suite (GBBS), a suite of scalable, provably-efficient implementations of over 20 fundamental graph problems for shared-memory multicore machines. Our results are obtained using a graph processing interface written in C++, extending the Ligra interface with additional functional primitives that have clearly defined cost bounds. Our approach enables writing high-level codes that are simultaneously simple and high-performance by virtue of using highly-optimized primitives. Another benefit is that optimizations, such as graph compression, are implemented transparently to highlevel user code, and can thus be utilized without changing the implementation. Our approach enables our codes to scale to the largest publicly-available real-world graph containing over 200 billion edges on a single multicore machine.We show how to use GBBS to process and perform a variety of tasks on real-world graphs. We present the high-level C++ APIs that enable us to write concise, high-performance implementations. We also introduce a Python interface to GBBS, which lets users easily prototype algorithms and pipelines in Python that significantly outperform NetworkX, a mature Python-based graph processing solution.
Dense subgraphs capture strong communities in social networks and entities possessing strong interactions in biological, or chemical networks. In particular, k-clique counting and listing have important applications in identifying important actors in a graph, and is furthermore used as a subroutine in approximating other dense substructures in a graph, such as generalizations of densest subgraph. However, finding k-cliques is computationally expensive, and therefore it is important to have fast parallel algorithms for solving this problem.This paper presents a new parallel algorithm for k-clique counting that has polylogarithmic span (parallel time) and is work-efficient with respect to the well-known sequential algorithm for k-clique listing by Chiba and Nishizeki. The algorithm can be extended to support k-clique listing and more generally, k-clique enumeration. Our algorithm is based on computing low out-degree orientations, which enables us to eliminate excess work while giving low span and space usage simultaneously. We present a new linear-work and polylogarithmic span algorithm for computing such low-degree orientations in parallel. To further accelerate k-clique counting, we present new parallel algorithms for producing unbiased estimations of clique counts using graph sparsification. Finally, we design new parallel work-efficient algorithms for approximating the k-clique densest subgraph, which uses our parallel k-clique counting algorithm as a subroutine. Our first algorithm gives a 1/k-approximation and is based on iteratively peeling vertices with the lowest incident clique counts from the graph using a parallel bucketing structure; although our algorithm is work-efficient, we prove that this peeling process is P-complete and hence our algorithm does not have polylogarithmic span in the worst case. Our second algorithm gives a 1/(k(1 + ϵ))-approximation, is work-efficient, and has polylogarithmic span.In addition to designing theoretically-efficient parallel algorithms for k-clique computations, we also implement the algorithms and propose various optimizations to improve their practical performance. On a 60-core machine with two-way hyper-threading, our algorithms achieve 13.23-38.99x and 1.19-13.76x self-relative parallel speedup for k-clique counting and k-clique densest subgraph, respectively. Compared to the state-of-the-art parallel k-clique counting algorithms, we achieve a 1.31-9.88x speedup, and compared to existing implementations of k-clique densest subgraph, we achieve a 1.01-11.83x speedup. We are able to compute the 4-clique counts on the largest publicly-available graph with over two hundred billion edges.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.