[论文解读] Message-Combining Algorithms for Isomorphic, Sparse Collective Communication
该论文提出了一种适用于规则拓扑(如d维环面)中同构稀疏集体通信的局部可计算、消息合并算法,将通信轮数从s减少至最多Nd(s个进程邻域)。该方法将轮数最多减少6倍(例如27点五点式中从26→6),并显著降低小消息(最多1 kB)的延迟,优于MPI邻域集体通信和朴素实现方式,通过零拷贝、基于派生数据类型的调度实现。
Isomorphic (sparse) collective communication is a form of collective communication in which all involved processes communicate in small, identically structured neighborhoods of other processes. Isomorphic neighborhoods are defined via an embedding of the processes in a regularly structured topology, e.g., $d$-dimensional torus, which may correspond to the physical communication network of the underlying system. Isomorphic collective communication is useful for implementing stencil and other regular, sparse distributed computations, where the assumption that all processes behave (almost) symmetrically is justified. In this paper, we show how efficient message-combining communication schedules for isomorphic, sparse collective communication can easily and efficiently be computed by purely local computations. We give schemes for \emph{isomorphic \alltoall} and \emph{\allgather} communication that reduce the number of communication rounds and thereby the communication latency from $s$ to at most $Nd$, for neighborhoods consisting of $s$ processes with the (small) factor $N$ depending on the structure of the neighborhood and the capabilities of the communication system. Using these schedules, we give \emph{zero-copy implementations} of the isomorphic collectives using MPI and its derived datatypes to eliminate explicit, process-local copy operations. By benchmarking the collective communication algorithms against straightforward implementations and against the corresponding MPI neighborhood collectives, we document significant latency improvements of our implementations for block sizes of up to a few kilobytes. We discuss further optimizations for computing even better schedules, some of which have been implemented and benchmarked.
研究动机与目标
- 为解决标准MPI邻域集体通信在五点式计算中常见的同构稀疏通信模式下效率低下的问题。
- 通过利用进程邻域的全局规则性,仅依赖局部计算,实现低延迟集体通信。
- 设计持久的零拷贝实现,利用MPI派生数据类型,消除冗余数据拷贝。
- 证明消息合并调度可局部计算,并在性能上显著优于标准MPI和朴素实现。
- 探索若外部声明同构性,此类优化是否可有效集成至MPI中。
提出的方法
- 通过d维环面拓扑中相同的相对偏移向量定义同构邻域,使所有进程的通信模式对称。
- 构建消息合并调度,将发送至多个邻居的消息合并为沿环面维度仅发送的单个大消息,将轮数从s减少至Nd。
- 使用MPI派生数据类型实现零拷贝通信,避免显式本地缓冲区拷贝,降低开销。
- 通过预计算调度实现持久接口,分摊设置开销,尤其适用于重复操作。
- 设计两种变体:一种在轮数上最优(使用中间跳点),另一种在轮数与数据量之间取得平衡(允许直接通信)。
- 在多种架构(如ARCHER、非环面系统)上,针对不同消息大小和进程数,与朴素实现和MPI邻域集体通信进行基准测试。
实验结果
研究问题
- RQ1是否可仅基于邻域结构的局部知识,计算出高效且无死锁的同构全对全和全归约的消息合并调度?
- RQ2与朴素或标准MPI实现相比,消息合并能在多大程度上减少稀疏同构集体通信的通信轮数和延迟?
- RQ3性能增益如何随消息大小、邻域结构和底层网络拓扑(如环面与非环面)变化?
- RQ4若外部声明同构性,所提算法是否可有效集成至现有MPI库中?
- RQ5在同构消息合并调度中,通信轮数与总消息量之间存在何种权衡?
主要发现
- 所提消息合并算法将通信轮数从s减少至最多Nd,在单端口系统上对27点五点式实现6倍轮数减少(26→6)。
- 在消息大小不超过1 kB时,优化实现显著优于标准MPI邻域集体通信和朴素实现,尤其在延迟敏感工作负载中表现突出。
- 在ARCHER系统上,MPI原生集体通信因更优的流水线处理和多端口网络支持表现更佳,但消息合并方法仍大幅优于朴素算法。
- 采用MPI派生数据类型的零拷贝方法消除了进程本地的拷贝操作,有助于降低延迟并提升性能。
- 随着消息大小增加,性能增益因通信总量上升和每节点进程数增多而减弱,尤其在分布式配置下更为明显。
- 本研究证实,识别同构邻域可带来大量尚未被标准MPI实现充分利用的优化机会。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。