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上进行数据归约,最后在树的根节点完成全局的聚合
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发送一个请求消息,由聚合头和归约数据载荷构成,如图。请求头包括了执行此次聚合操作必要的信息
收到聚合操作的AN从所有子节点收集这些请求,并在所有预期请求均到达后执行归约操作。聚合的结果作为新的请求的一部分发送到它的父AN。最终结果由Root Aggregation Node得出
聚合操作完成后,根节点将结果转发到指定目的地。转发也需要是可靠的,例如可能通过多播的方式转发,但需要提供可靠交付机制
错误处理、硬件交换机支持
SHArP错误由SHArP硬件实现检测,聚合管理器AM会收到此类错误检测结果的通知。传输层错误如果可以恢复则数据继续进行传输。End-Node的错误由交换机尝试与其通信时检测。
聚合节点的逻辑被集成到交换机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将数据传给更高层的交换机
结果分发
开发了一种新的可靠广播协议,使用单播信息在AN之间发送数据,将Reduction Tree封装进消息,CFU收到报文后提取出应该将消息发送到哪些端口,为每个端口生成一个新的RC报文携带原有数据。
References
Elias, G., Levi, L., Romlet, E., Marelli, A.: Parallel computation network device. US Patent 16/357,356. Filed 19 March 2019 ↩︎