We present a shared-memory parallelization of flow-based refinement, which is considered the most powerful iterative improvement technique for hypergraph partitioning at the moment. Flow-based refinement works on bipartitions, so current sequential partitioners schedule it on different block pairs to improve $k$-way partitions. We investigate two different sources of parallelism: a parallel scheduling scheme and a parallel maximum flow algorithm based on the well-known push-relabel algorithm. In addition to thoroughly engineered implementations, we propose several optimizations that substantially accelerate the algorithm in practice, enabling the use on extremely large hypergraphs (up to 1 billion pins). We integrate our approach in the state-of-the-art parallel multilevel framework Mt-KaHyPar and conduct extensive experiments on a benchmark set of more than 500 real-world hypergraphs, to show that the partition quality of our code is on par with the highest quality sequential code (KaHyPar), while being an order of magnitude faster with 10 threads.
翻译:我们展示了一种以流动为基础的细化的共生平行方法,这被认为是目前用于高分层的最为强大的迭代改进技术。 以流动为基础的精细方法对双分层进行了精细工作, 因此当前顺序分割器将它排在不同的区块配对上, 以改善美元- 高速公路分割。 我们调查了两个不同的平行源: 一个平行的时间安排计划和一个基于众所周知的推线- 标签算法的平行最大流算法。 除了彻底设计的实施外, 我们提议了一些优化, 大大加快了算法的实际应用, 使得能够使用超大型高分解( 高达10亿针 ) 。 我们将我们的方法整合到最先进的平行的多层次框架 Mt- KaHyPar 中, 并且对500多个真实世界超强的一组基准进行广泛的实验, 以显示我们代码的分区质量与最高质量顺序代码( KaHyPar) 相当, 同时以10条线的速度更快的顺序排列。