文献阅读《Adaptive and Hierarchical Large Message All-to-all Communication Algorithms...》
I. 前置内容 在了解集合通信(Collective Communication)之前要先了解点P2P对点通信(Point-to-Point)。P2P通信通常为两个不同进程间的通信,是1对1的; 在MPI规范中,既有同步阻塞的P2P接口:MPI_send和MPI_Recv接口,也定义了非阻塞的P2P接口如:MPI_Isend、MPI_Irecve。 集合通信和P2P通信是相对应的,集合通信则是1对多或是多对多的。在分布式系统中,各个节点间往往存在大量的集合通信需求,而我们可以用消息传递接口(Message Passing Interface,MPI)来定义一些比较底层的消息通信行为譬如Reduce、Allreduce、Scatter、Gather、Allgather等。 1.1 系统架构 集合通信算法的优化往往与其对应的网络拓扑和系统架构有直接关系,通常情况下,一个节点内的GPU-GPU或GPU-CPU之间的结构成为系统架构,节点之间的网络连接称为网络拓扑,一种确定的系统架构会有确定的网络拓扑架构。 在HPC领域有很多经典的系统架构和网络拓扑,例如:Summit system或者Lassen system等。本文主要由于发表于2021年,很多系统架构和指标数据与当先最新数据差异较大,但是为了方便后续的理解,本文后续还是以Summit system和Lassen system为例进行分析。 简化的Summit System和Lassen System(论文中的结构) 每个节点包含6个GPU和2个CPU,每3个GPU和1个CPU组成一个Group,使用NVLink进行连接,CPU与CPU之间使用X-Bus进行连接,同时与IB网卡使用PCIe进行连接,节点间使用IB协议进行组网。NVLink、NVSwitch、IB等硬件设备的概念将会在下一节中介绍。 1.2 相关组件 NVLink and NVSwitch NVLink和NVSwitch是一种可支持服务器内和服务器间实现高级多 GPU 通信的基础模组。第四代NVLink技术可为多 GPU 系统配置提供高于以往 1.5 倍的带宽,以及增强的可扩展性。第三代NVSwitch基于 NVLink 的高级通信能力构建,可为计算密集型工作负载提供更高带宽和更低延迟。 Mellanox InfiniBand InfiniBand(直译为“无限带宽”技术,缩写为IB)是一个用于高性能计算的计算机网络通信标准,它具有极高的吞吐量和极低的延迟,用于计算机与计算机之间的数据互连。InfiniBand也用作服务器与存储系统之间的直接或交换互连,以及存储系统之间的互连。常用的IB交换机/网卡带宽普遍为为400GB/s。 Remote Direct Memory Access (RDMA) RDMA是一种概念,在两个或者多个计算机进行通讯的时候使用DMA, 从一个主机的内存直接访问另一个主机的内存。 1.3 (Non-)Personalized All-to-All 1.3.1 Non-Personalized All-to-All Non-Personalized All-to-All(通常称为 MPI_Allgather)是一种 MPI 集体通信模式,是 MPI_Gather 和 MPI_Bcast 的结合。所有进程按等级顺序从其他进程收集数据。操作结束时,每个进程都将与所有其他进程交换数据。 1.3.2 Personalized All-to-All Personalized All-to-All称为 MPI_Alltoall,与 MPI_Allgather 类似,所有进程都相互共享数据。然而,每个进程都会向其他进程发送不同的数据,从而形成一种个性化的集体通信模式(即,每个进程都会向每个其他进程发送不同的数据块) 1.4 相关算法 1.4.1 Ring 每个进程i发送数据给(i+1) \ N并从(i-1) \ N接收数据,但是这种方法会带来过高的延迟。 ...