Cycles are one of the fundamental subgraph patterns and being able to enumerate them in graphs enables important applications in a wide variety of fields, including finance, biology, chemistry, and network science. However, to enable cycle enumeration in real-world applications, efficient parallel algorithms are required. In this work, we propose scalable parallelisation of state-of-the-art sequential algorithms for enumerating simple, temporal, and hop-constrained cycles. First, we focus on the simple cycle enumeration problem and parallelise the algorithms by Johnson and by Read and Tarjan in a fine-grained manner. We theoretically show that our resulting fine-grained parallel algorithms are scalable, with the fine-grained parallel Read-Tarjan algorithm being strongly scalable. In contrast, we show that straightforward coarse-grained parallel versions of these simple cycle enumeration algorithms that exploit edge- or vertex-level parallelism are not scalable. Next, we adapt our fine-grained approach to enable the enumeration of cycles under time-window, temporal, and hop constraints. Our evaluation on a cluster with 256 CPU cores that can execute up to 1024 simultaneous threads demonstrates a near-linear scalability of our fine-grained parallel algorithms when enumerating cycles under the aforementioned constraints. On the same cluster, our fine-grained parallel algorithms achieve, on average, one order of magnitude speedup compared to the respective coarse-grained parallel versions of the state-of-the-art algorithms for cycle enumeration. The performance gap between the fine-grained and the coarse-grained parallel algorithms increases as we use more CPU cores.
翻译:环是基本的子图模式之一,在图结构中枚举环在金融、生物学、化学和网络科学等众多领域具有重要应用价值。然而,为在实际应用中实现环枚举,需要高效的并行算法。本文提出对现有最优顺序算法进行可扩展并行化,以枚举简单环、时序环及跳数约束环。首先,我们聚焦于简单环枚举问题,以细粒度方式并行化了Johnson算法以及Read-Tarjan算法。理论证明,所提出的细粒度并行算法具有可扩展性,其中细粒度并行Read-Tarjan算法达到强可扩展性。相比之下,我们论证了利用边级或顶点级并行度的粗粒度简单环枚举算法不具备可扩展性。随后,我们将细粒度方法推广至时间窗口、时序约束和跳数约束下的环枚举。在配备256个CPU核心(可执行多达1024个并发线程)的集群上的评估表明,在所述约束条件下进行环枚举时,我们的细粒度并行算法展现出近线性的可扩展性。在同一集群上,相比现有最优环枚举算法的粗粒度并行版本,我们的细粒度并行算法平均实现了一个数量级的加速比。随着CPU核心数量的增加,细粒度与粗粒度并行算法之间的性能差距将进一步扩大。