Graph coloring is often used in parallelizing scientific computations that run in distributed and multi-GPU environments; it identifies sets of independent data that can be updated in parallel. Many algorithms exist for graph coloring on a single GPU or in distributed memory, but to the best of our knowledge, hybrid MPI+GPU algorithms have been unexplored until this work. We present several MPI+GPU coloring approaches based on the distributed coloring algorithms of Gebremedhin et al. and the shared-memory algorithms of Deveci et al. . The on-node parallel coloring uses implementations in KokkosKernels, which provide parallelization for both multicore CPUs and GPUs. We further extend our approaches to compute distance-2 and partial distance-2 colorings, giving the first known distributed, multi-GPU algorithm for these problems. In addition, we propose a novel heuristic to reduce communication for recoloring in distributed graph coloring. Our experiments show that our approaches operate efficiently on inputs too large to fit on a single GPU and scale up to graphs with 76.7 billion edges running on 128 GPUs.
翻译:在分布式和多 GPU 环境中运行的平行科学计算中,通常使用图形颜色;它确定可平行更新的独立数据组。在单个 GPU 或分布式内存的图形颜色中存在许多算法,但据我们所知,混合的 MPI+GPU 算法直到这项工作之前尚未探索。我们根据 Gebremedhin 等人等人的分布式颜色算法和 Deveci 等人的共享- 模数算法提出了几种 MPI+GPU 颜色方法。在 KokkosKernels 中, 在线平行的颜色使用功能, 提供多核心 CPU 和 GPU 的平行化。 我们进一步扩展了我们的方法来计算距离-2 和 部分距离-2 的颜色 。 我们为这些问题提供了第一个已知的分布式的多GPU 。 此外, 我们提出了一种新型的偏移法, 以减少分布式图形颜色中的通信 。 我们的实验显示我们的方法在输入上操作效率太大, 以至于无法将单个的 GPUPU 128 。