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.
翻译:首先,我们关注简单的循环查点问题,并以精确的方式将约翰逊以及雷德和塔里安的算法平行起来,这样就可以在包括金融、生物学、化学和网络科学在内的广泛领域进行重要的应用。然而,为了在真实世界应用程序中进行循环查点,需要有效的平行算法。在这项工作中,我们建议对利用边际或顶端平行周期的简单循环算法进行可缩放的同步。首先,我们关注简单的循环查点问题,并以细微的分级方式将约翰逊和雷德和塔里安的算法平行起来。我们理论上表明,我们由此产生的细微的平行算法是可变的,而细微的双轨算法则是可变的。相比之下,我们对这些简单循环算法的直线算法的直线平行算法的直径平行算法是:我们在一个时时时时时、时、推时和跳的递增的递增速度。我们对于一个时,对一个连续的CPOL的轨算法的轨算法的比,我们用一个时,在256年的CPOL核心的平行的组的递进的递化的递化的递算算法,在10级的递进的递进中,我们对一个时,对接近的递进的递进的递增的递进的递进的递算法的递算法的递算法的递算法的递进的递算。