In-Network Aggregation 1 -- SHArP

In-Network Aggregation是指将集合操作部分卸载到交换机中进行,这样以来每个主机进程仅需向网络中发送与接收一遍数据,降低了数据传输的次数也降低了集合操作的时间。

SHArP是Mellanox交换机支持的一种协议,能对Reduce、Allreduce、Barrier、Broadcast等操作提供支持。

SHArP协议最初的论文

Scalable Hierarchical Aggregation Protocol (SHArP): A Hardware Architecture for Efficient Data Reduction

COMHPC 2016

Mellanox Technologies, Inc.

doi:10.1109/COMHPC.2016.006

将集合通信(Reduce、Allreduce、Barrier)卸载到网络(交换机)上进行。

降低延迟、增加带宽、减少网络中传输的数据量、分担CPU负载

聚合协议 Aggregation Protocol

SHArP提供了一个描述数据归约的抽象概念,Aggregation Node( AN)是其中基本组成部分,数据从聚合树的叶子进入聚合树,然后沿着树一路向上并在AN上进行数据归约,最后在树的根节点完成全局的聚合

image-20230720103300028

Aggregation Nodes

一种逻辑结构,聚合树中的一个节点,接收子节点的数据归约后再适当的情况下将结果转发给父节点。如果已经是根节点,那就会开始分发结果。协议支持的集合操作需要数据量在子节点和父节点之间一致

聚合可以以不同的方式实现,AN可以被实例化成服务器节点上的进程、交换机进程、交换机硬件的一部分

Aggregation Trees

聚合树定义了从终端从end-node输入数据的归约路径,以树的根部为终点,AN以聚合树的逻辑结构连接。SHArP中End-node与AN相连一同组成SHArP树,AN一般实现在交换机上,也可以是主机。AN间的连接是逻辑连接不必遵循物理拓扑结构。

每个AN都可以加入多棵树中,但每个归约操作一次只能用一棵树,这样可以更好地分配系统负载。

SHArP可以用多种协议,但需要可靠、按序的数据传输。

树是如何构建的?

Aggregation Group

连接到树的叶子节点的主机的集合。组中可以包含跨越通信域的主机集,组形成时,AN会对其子节点和父节点进行扫描定义出一个子树来执行归约

步骤:一个通信域创建时就会创建一个新的SHArP组,每个主机或插槽的进程中选出一个进程在组中。组的每个成员的责任是从主机或者插槽其它进程聚合数据并传递给SHArP协议。

Aggregation Operation

聚合操作会在一个Aggregation Group的所有成员中进行。操作的初始化由组中每个成员向它连接的Leaf Aggregation Nodes发送一个请求消息,由聚合头和归约数据载荷构成,如图。请求头包括了执行此次聚合操作必要的信息

image-20230720152510315

image-20230720152602042

收到聚合操作的AN从所有子节点收集这些请求,并在所有预期请求均到达后执行归约操作。聚合的结果作为新的请求的一部分发送到它的父AN。最终结果由Root Aggregation Node得出

聚合操作完成后,根节点将结果转发到指定目的地。转发也需要是可靠的,例如可能通过多播的方式转发,但需要提供可靠交付机制

错误处理、硬件交换机支持

SHArP错误由SHArP硬件实现检测,聚合管理器AM会收到此类错误检测结果的通知。传输层错误如果可以恢复则数据继续进行传输。End-Node的错误由交换机尝试与其通信时检测。

image-20230720155927825

聚合节点的逻辑被集成到交换机ASIC中的InfiniBand TCA实现。聚合树AN之间及其与主机之间通信由IB RC协议实现。

如图所示,一个内部逻辑端口将 InfiniBand SHArP TCA 连接到交换机。TCA 提供了一个 InifinBand 传输终止点,根据要求将数据定向到下一个AN,并且作为聚合协议所需结果的来源。

TCA 同时支持可靠连接(RC)传输和不可靠数据报(UD)传输,前者可通过聚合树可靠地传输数据,后者可实现聚合结果的多播分发。聚合时,数据使用 RC 传输向根方向发送。聚合结果可使用 RC 传输从根向下分发,也可使用 UD 传输向 UD 多播组分发。TCA 硬件中嵌入了聚合节点功能的高性能硬件实现。

MPI实现

一个SHArP Group映射到一个MPI通信域中。具体实现组的成员使用非阻塞接口向连接到Leaf交换机的RC QP发布工作请求在本地启动集合操作。MPI_Allreduce和MPI_Reduce用相同的方法实现,不过reduce中非根节点会忽略从AN传回的数据,仅将它作为集合操作完成的信号。

流式设计优化大消息带宽

Scalable Hierarchical Aggregation and Reduction Protocol (SHARP)TM Streaming-Aggregation Hardware Design and Evaluation

Mellanox Technologies

High Performance Computing

doi: 10.1007/978-3-030-50743-5_3

为Mellanox HDR InfiniBand交换机增加了IPU SHArP功能,即Streaming-Aggregation,将大数据归约卸载到网络

Streaming-Aggregation[1]是Mellanox的HDR InfiniBand技术引入的一个新功能,能在数据in-flight中对数据进行归约,同时保持数据传输接近线速(near line-rate),这篇文章也是改进SHArP协议支持了这一功能。

改进:

  • 为Reduction Tree增加一个新特性定义树的类型,支持low-latency和Streaming-Aggregation两种

  • 锁定Streaming-Aggregation树的功能

  • 交换机级别对流水线环形归约的支持

  • 大规模可靠多播

Tree Type

Streaming-Aggregation的设计是带宽最优的协议,每个还原树会有自己的类型(带宽最优或延迟最优)。

InfiniBand Transport Selection

An-to-AN:RC协议

分发结果:

  • 短消息:一次UD组播+一次RC通过reductiion结构的传播。收到数据后放入临时缓存并将结果拷贝进用户缓存,就是只接收一份数据,RC作为UD组播没接收到数据的备用

  • 长消息:直接使用RC

Tree Locking

MPI集合通信不保证各进程的数据何时到达,需要延迟保留Streaming-aggregation的聚合缓冲区。为了避免无期限占用reduction buffer,引入了协议,在一棵树有特定数目多个streaming-aggregation时为其上锁

Switch-Level Reduction

一个交换机内主机与端口一一对应,端口被组织能两个半圆,相遇位置最顶层的combiner将数据传给更高层的交换机

image-20230721145547553

结果分发

开发了一种新的可靠广播协议,使用单播信息在AN之间发送数据,将Reduction Tree封装进消息,CFU收到报文后提取出应该将消息发送到哪些端口,为每个端口生成一个新的RC报文携带原有数据。

image-20230721150316797

References


  1. Elias, G., Levi, L., Romlet, E., Marelli, A.: Parallel computation network device. US Patent 16/357,356. Filed 19 March 2019 ↩︎