中文

COSTA:带进程重标记的通信最优洗牌与转置算法

分布式、并行与集群计算 2021-06-15 v1 数据结构与算法

摘要

面向线性代数的通信避免算法日益流行,尤其针对分布式内存架构。实践中,这些算法假定数据已按特定方式分布,因而数据重洗牌成为使用它们的关键。出于性能原因,必须避免直白的全对全交换。此处我们表明,进程重标记(即在最终布局中置换进程)可用于获得数据重洗牌的通信最优性,且可通过求解线性分配问题(最大权二部完美匹配)高效求得。基于此,我们开发了通信最优洗牌与转置算法(COSTA):该高度优化的算法在分布式系统上实现 A=αop(B)+βA, op{transpose,conjugate-transpose,identity}A=\alpha\cdot \operatorname{op}(B) + \beta \cdot A,\ \operatorname{op} \in \{\operatorname{transpose}, \operatorname{conjugate-transpose}, \operatorname{identity}\},其中 A,BA, B 为可能具有不同(分布式)布局的矩阵,α,β\alpha, \beta 为标量。COSTA 即使在异构网络拓扑(节点间延迟与带宽不同)下也能利用通信最优进程重标记。该实现不仅多次优于最佳的可用 ScaLAPACK 重分布与转置例程,还能处理更一般的矩阵布局,特别地,其不限于块循环布局。最后,我们利用 COSTA 将通信最优矩阵乘法算法集成到 CP2K 量子化学模拟软件包中。由此表明,除带来显著重分布加速外,COSTA 还可通过促进具有广泛数据布局的算法间互操作性,在应用中释放近期线性代数算法的全部潜力。

关键词

引用

@article{arxiv.2106.06601,
  title  = {COSTA: Communication-Optimal Shuffle and Transpose Algorithm with Process Relabeling},
  author = {Marko Kabić and Simon Pintarelli and Anton Kozhevnikov and Joost VandeVondele},
  journal= {arXiv preprint arXiv:2106.06601},
  year   = {2021}
}

备注

To be published in the proceedings of the 36th International Conference on High Performance Computing, ISC High Performance 2021. The implementation of the algorithm is available at: https://github.com/eth-cscs/COSTA