Listing and counting triangles in graphs is a key algorithmic kernel for network analyses, including community detection, clustering coefficients, k-trusses, and triangle centrality. In this paper, we propose the novel concept of a cover-edge set that can be used to find triangles more efficiently. Leveraging the breadth-first search (BFS) method, we can quickly generate a compact cover-edge set. Novel sequential and parallel triangle counting algorithms that employ cover-edge sets are presented. The novel sequential algorithm performs competitively with the fastest previous approaches on both real and synthetic graphs, such as those from the Graph500 Benchmark and the MIT/Amazon/IEEE Graph Challenge. We implement 22 sequential algorithms for performance evaluation and comparison. At the same time, we employ OpenMP to parallelize 11 sequential algorithms, presenting an in-depth analysis of their parallel performance. Furthermore, we develop a distributed parallel algorithm that can asymptotically reduce communication on massive graphs. In our estimate from massive-scale Graph500 graphs, our distributed parallel algorithm can reduce the communication on a scale~36 graph by 1156x and on a scale~42 graph by 2368x. Comprehensive experiments are conducted on the recently launched Intel Xeon 8480+ processor and shed light on how graph attributes, such as topology, diameter, and degree distribution, can affect the performance of these algorithms.
翻译:在图中列举和计算三角形是网络分析的关键算法核心,包括社区检测、聚类系数、k-桁架和三角形中心性。本文提出覆盖边集这一新型概念,可用于更高效地发现三角形。利用广度优先搜索(BFS)方法,我们可以快速生成紧凑的覆盖边集。本文提出了采用覆盖边集的序列与并行三角形计数新型算法。在真实图与合成图(如Graph500基准测试及MIT/Amazon/IEEE图挑战赛提供的图数据)上,新型序列算法的性能与现有最快方法相当。我们实现了22种序列算法以进行性能评估与比较,同时采用OpenMP对其中11种序列算法进行并行化,并对其并行性能展开深入分析。此外,我们开发了一种分布式并行算法,能在大规模图上渐进式降低通信开销。基于对大规模Graph500图的估算,我们的分布式并行算法在规模为36的图上可降低通信量1156倍,在规模为42的图上可降低2368倍。全面实验在最新发布的Intel Xeon 8480+处理器上开展,揭示了拓扑结构、直径与度分布等图属性如何影响这些算法的性能。