HPC网络-RDMA
“不要让网络成为多节点并行计算效率的瓶颈。”
RDMA(Remote Direct Memory Access)和TCP/IP都是计算机网络通信中常用的技术协议。然而,它们之间存在着显著的区别。
高性能计算(HPC)集群中多节点并行时,核与核之间需要通过计算网络实时通信,这就要求计算网络具有大带宽、低延时的特性。而传统以太网TCP/IP的通信方式,需要将数据传输到操作系统内核,然后再从内核复制到目标计算机的内存中,不仅延迟较高,而且还占用了CPU的计算资源。
RDMA(远程直接内存访问)可以在不经过操作系统内核的情况下将数据从一个计算机直接传输到另一个计算机的内存中。这种直接访问内存的方式可以避免操作系统内核的干扰,从而减少了延迟和CPU使用率。
RDMA还有一些其他的特点。例如,RDMA可以利用专用的网络适配器和网络协议,如InfiniBand、RoCE(RDMA over Converged Ethernet)和iWARP等,从而实现更高的带宽和更低的延迟。此外,RDMA还可以通过零拷贝等技术实现快速数据传输,从而提高网络性能。
目前支持RDMA的网络协议有:
InfiniBand(IB): 从一开始就支持RDMA的新一代网络协议。由于这是一种新的网络技术,因此需要支持该技术的网卡和交换机。
RDMA融合以太网(RoCE): 即RDMA over Ethernet, 允许通过以太网执行RDMA的网络协议。这允许在标准以太网基础架构(交换机)上使用RDMA,只不过网卡必须是支持RoCE的特殊的NIC。
互联网广域RDMA协议(iWARP): 即RDMA over TCP, 允许通过TCP执行RDMA的网络协议。这允许在标准以太网基础架构(交换机)上使用RDMA,只不过网卡要求是支持iWARP的NIC。
RDMA可以提供更低的延迟、更高的带宽和更少的CPU使用率,适用于计算密集型任务和需要快速响应的应用程序,正是为HPC而生。而TCP则具有可靠的传输、面向连接等优点,适用于对数据传输的可靠性要求较高的应用程序,更适合互联网场景。