面向天河互连网络的可扩展通信框架实现技术
发布时间:2020-12-10 07:01
开源通信框架在编程模型和互连接口之间定义标准化的通信编程接口,提供了独立于互连网络特性的高性能通信操作,提高了编程模型在新型互连网络上的开发效率。通过设计与实现多通道数据传输协议,解决了通信框架在天河互连网络上实现时的性能和扩展性问题。测试数据表明,天河互连网络上的通信框架具有很低的软件层开销,提供了接近于互连硬件设计指标的通信性能,为拓展天河互连网络对各种编程模型和分布式计算框架的高效支持提供了良好的基础。
【文章来源】:计算机工程与科学. 2020年10期 第1720-1729页 北大核心
【文章页数】:10 页
【部分图文】:
UCX系统结构
OFI由OpenFabrics Alliance发起,其设计目标是为多种不同的高速互连定义一个抽象的新通信编程接口,覆盖各种互连的主要功能特性,既能够贴近应用的需求,同时又不会影响面向特定互连的实现优化。OFI的总体结构如图2所示,定义了MSG消息传输、Tag消息传输、RMA通信操作和原子操作等数据传输接口。MSG消息传输是2个通信端点间维护消息数据边界的顺序数据传输,而Tag消息传输则是在MSG基础上加入了基于Tag的消息选择接收。OFI定义了EP_DGRAM、EP_MSG和EP_RDM这几种不同的通信端点类型,分别对应无连接不可靠报文、有连接可靠消息和无连接可靠报文通信模式,每种通信端点上能支持的接口也不同。不同于UCX的明确分层结构,OFI的接口是由各个Provider直接实现的。Provider又区分为Core和Utility 2类,每个Core Provider直接对应一个互连平台,但基于互连网络的功能特性,可以选择只实现部分OFI接口。而Utility Provider则通过软件层的协议仿真操作为Core Provider添加一些其它未实现的接口功能[8],例如RXD为只支持EP_DGRAM端点的Core Provider增加了对EP_RDM端点和相应的Tag消息传输接口等的支持,而RXM为只支持EP_MSG端点的Core Provider增加了对EP_RDM端点和相对应通信接口的支持。
共享RDMA通道通信协议需要MP和RDMA Get 2个阶段的操作才能完成消息数据传输,这样增加了通信延迟。而RDMA Put操作可以直接将数据从发送方传输到接收方,但如何协调双方消息数据区的地址和长度信息是需要解决的技术问题。本文设计了如图3所示的一种基于RDMA Put的消息传输协议。发送方和接收方各预先在内存注册一个同样长度的RDMA缓冲区,通过RDMA Put操作将这2个RDMA缓冲区构造成一个发送方管理的远程FIFO结构。发送方消息数据被顺序拷贝到发送方的RDMA缓冲区中,然后通过RDMA Put传输到接收方RDMA缓冲区的相同位置,再利用远程事件通知接收方将数据从RDMA缓冲区拷贝到接收消息缓冲区中。对较短的消息数据传输,还可以使用立即数RDMA Put操作,这是一种将源数据嵌入RDMA通信描述符中的通信机制,具有更低的通信延迟。理论上,这种远程FIFO结构可以按字节顺序使用,但考虑到RDMA Put传输在对齐Cacheline边界时效率更高,所以切分成Cacheline长度的单元。每次消息传输按数据长度使用连续数个单元,只有最后1个单元会浪费少量内存未被使用。消息的第1个单元里面预留消息头,在接收方消息头里面的数据长度域由RDMA Put远程事件来更新,这样接收方可以获知消息数据的长度。多个消息传输对应的数据拷贝和RDMA Put操作也是流水重叠执行的,可以提高消息数据的传输带宽。这种远程FIFO采用静态流控机制,RDMA缓冲区切分出的Cacheline单元数就是最大发送信用值。接收方可以通过向发送方的反向消息传输操作顺带回填信用,或在接收处理了足够的单元时触发阈值,再主动通过MP短报文回填信用。
本文编号:2908282
【文章来源】:计算机工程与科学. 2020年10期 第1720-1729页 北大核心
【文章页数】:10 页
【部分图文】:
UCX系统结构
OFI由OpenFabrics Alliance发起,其设计目标是为多种不同的高速互连定义一个抽象的新通信编程接口,覆盖各种互连的主要功能特性,既能够贴近应用的需求,同时又不会影响面向特定互连的实现优化。OFI的总体结构如图2所示,定义了MSG消息传输、Tag消息传输、RMA通信操作和原子操作等数据传输接口。MSG消息传输是2个通信端点间维护消息数据边界的顺序数据传输,而Tag消息传输则是在MSG基础上加入了基于Tag的消息选择接收。OFI定义了EP_DGRAM、EP_MSG和EP_RDM这几种不同的通信端点类型,分别对应无连接不可靠报文、有连接可靠消息和无连接可靠报文通信模式,每种通信端点上能支持的接口也不同。不同于UCX的明确分层结构,OFI的接口是由各个Provider直接实现的。Provider又区分为Core和Utility 2类,每个Core Provider直接对应一个互连平台,但基于互连网络的功能特性,可以选择只实现部分OFI接口。而Utility Provider则通过软件层的协议仿真操作为Core Provider添加一些其它未实现的接口功能[8],例如RXD为只支持EP_DGRAM端点的Core Provider增加了对EP_RDM端点和相应的Tag消息传输接口等的支持,而RXM为只支持EP_MSG端点的Core Provider增加了对EP_RDM端点和相对应通信接口的支持。
共享RDMA通道通信协议需要MP和RDMA Get 2个阶段的操作才能完成消息数据传输,这样增加了通信延迟。而RDMA Put操作可以直接将数据从发送方传输到接收方,但如何协调双方消息数据区的地址和长度信息是需要解决的技术问题。本文设计了如图3所示的一种基于RDMA Put的消息传输协议。发送方和接收方各预先在内存注册一个同样长度的RDMA缓冲区,通过RDMA Put操作将这2个RDMA缓冲区构造成一个发送方管理的远程FIFO结构。发送方消息数据被顺序拷贝到发送方的RDMA缓冲区中,然后通过RDMA Put传输到接收方RDMA缓冲区的相同位置,再利用远程事件通知接收方将数据从RDMA缓冲区拷贝到接收消息缓冲区中。对较短的消息数据传输,还可以使用立即数RDMA Put操作,这是一种将源数据嵌入RDMA通信描述符中的通信机制,具有更低的通信延迟。理论上,这种远程FIFO结构可以按字节顺序使用,但考虑到RDMA Put传输在对齐Cacheline边界时效率更高,所以切分成Cacheline长度的单元。每次消息传输按数据长度使用连续数个单元,只有最后1个单元会浪费少量内存未被使用。消息的第1个单元里面预留消息头,在接收方消息头里面的数据长度域由RDMA Put远程事件来更新,这样接收方可以获知消息数据的长度。多个消息传输对应的数据拷贝和RDMA Put操作也是流水重叠执行的,可以提高消息数据的传输带宽。这种远程FIFO采用静态流控机制,RDMA缓冲区切分出的Cacheline单元数就是最大发送信用值。接收方可以通过向发送方的反向消息传输操作顺带回填信用,或在接收处理了足够的单元时触发阈值,再主动通过MP短报文回填信用。
本文编号:2908282
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2908282.html