一种双流水线、双根全归约算法及其实现
分布式、并行与集群计算
2022-01-21 v3
摘要
我们讨论一种简单的、基于二叉树的算法,用于由 个适当互连的处理器组成的并行系统上的集合全归约(归约至全体,MPI_Allreduce)操作。该算法可进行双流水线化,以利用通信系统的双向(类电话)通信能力。为使算法更对称,处理器被组织成两棵有根树,且两根之间进行通信。对于每个流水线块,每个非叶处理器执行三个通信步骤,包括从两个子节点接收和向它们发送,以及向根节点发送和从根节点接收。在一个基于轮次的、均匀的、线性代价的通信模型中,同时发送和接收 个数据元素所需的时间为 (其中 为通信启动延迟, 为每元素时间,均为系统相关常数),通过适当选择流水线块大小,对包含 个元素的向量执行全归约操作的时间为 。我们将 MPI 实现的性能与类似的先归约后广播算法以及现代小型 处理器集群上的原生 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}
}