We present a new parallel algorithm for $k$-clique counting/listing that has polylogarithmic span (parallel time) and is work-efficient (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+\epsilon))$-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.
翻译:我们提出一个新的平行算法,用于计算平行计算。我们还提出一个新的平行算法,用于利用图形垃圾化来产生对球数的公正估计。最后,我们设计了两个新的平行工作效率算法,用于接近美元-美元-美元-美元-美元-美元密度子谱仪,第一个是1/美元-美元-顺序算法,第二个是1/(k)(i-eepsilon)的低度方向计算法,用来平行计算。我们提出新的平行算法,用于利用图形垃圾化来生成对球数的公正估计。最后,我们设计了两个平行工作效率算法,用于接近美元-美元-美元-美元-美元-美元密度子谱仪,第一个是1/(k)(k)(i-i)-美元-美元-美元-美元-美元-美元-美元-美元-美元-美元-美元速度算法,第二个是1(k)-美元-美元-美元-美元-美元-美元-美元-美元-直线线线性算法,第二个算法,用来计算。我们的第一个算算出一个三-美元-美元-l-美元-美元-美元-美元-美元-美元-美元-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直数-直-直-直数-直数-直数-直数-直数-直-直-直-直-直-直-直-直-直-直-直数-直数-直数-直数-直数-直数-直数-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-直-