中文

一种双流水线、双根全归约算法及其实现

分布式、并行与集群计算 2022-01-21 v3

摘要

我们讨论一种简单的、基于二叉树的算法,用于由 pp 个适当互连的处理器组成的并行系统上的集合全归约(归约至全体,MPI_Allreduce)操作。该算法可进行双流水线化,以利用通信系统的双向(类电话)通信能力。为使算法更对称,处理器被组织成两棵有根树,且两根之间进行通信。对于每个流水线块,每个非叶处理器执行三个通信步骤,包括从两个子节点接收和向它们发送,以及向根节点发送和从根节点接收。在一个基于轮次的、均匀的、线性代价的通信模型中,同时发送和接收 nn 个数据元素所需的时间为 α+βn\alpha+\beta n(其中 α\alpha 为通信启动延迟,β\beta 为每元素时间,均为系统相关常数),通过适当选择流水线块大小,对包含 mm 个元素的向量执行全归约操作的时间为 O(logp+mlogp)+3βmO(\log p+\sqrt{m\log p})+3\beta m。我们将 MPI 实现的性能与类似的先归约后广播算法以及现代小型 36×3236\times 32 处理器集群上的原生 MPI_Allreduce 集合操作进行了比较。通过适当选择流水线块的数量,有可能获得比未利用双向通信的流水线算法更好的性能。

关键词

引用

@article{arxiv.2109.12626,
  title  = {A Doubly-pipelined, Dual-root Reduction-to-all Algorithm and Implementation},
  author = {Jesper Larsson Träff},
  journal= {arXiv preprint arXiv:2109.12626},
  year   = {2022}
}