面向天河互連網絡的可擴展通信框架實現技術
發(fā)布時間:2020-12-10 07:01
開源通信框架在編程模型和互連接口之間定義標準化的通信編程接口,提供了獨立于互連網絡特性的高性能通信操作,提高了編程模型在新型互連網絡上的開發(fā)效率。通過設計與實現多通道數據傳輸協議,解決了通信框架在天河互連網絡上實現時的性能和擴展性問題。測試數據表明,天河互連網絡上的通信框架具有很低的軟件層開銷,提供了接近于互連硬件設計指標的通信性能,為拓展天河互連網絡對各種編程模型和分布式計算框架的高效支持提供了良好的基礎。
【文章來源】:計算機工程與科學. 2020年10期 第1720-1729頁 北大核心
【文章頁數】:10 頁
【部分圖文】:
UCX系統結構
OFI由OpenFabrics Alliance發(fā)起,其設計目標是為多種不同的高速互連定義一個抽象的新通信編程接口,覆蓋各種互連的主要功能特性,既能夠貼近應用的需求,同時又不會影響面向特定互連的實現優(yōu)化。OFI的總體結構如圖2所示,定義了MSG消息傳輸、Tag消息傳輸、RMA通信操作和原子操作等數據傳輸接口。MSG消息傳輸是2個通信端點間維護消息數據邊界的順序數據傳輸,而Tag消息傳輸則是在MSG基礎上加入了基于Tag的消息選擇接收。OFI定義了EP_DGRAM、EP_MSG和EP_RDM這幾種不同的通信端點類型,分別對應無連接不可靠報文、有連接可靠消息和無連接可靠報文通信模式,每種通信端點上能支持的接口也不同。不同于UCX的明確分層結構,OFI的接口是由各個Provider直接實現的。Provider又區(qū)分為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操作可以直接將數據從發(fā)送方傳輸到接收方,但如何協調雙方消息數據區(qū)的地址和長度信息是需要解決的技術問題。本文設計了如圖3所示的一種基于RDMA Put的消息傳輸協議。發(fā)送方和接收方各預先在內存注冊一個同樣長度的RDMA緩沖區(qū),通過RDMA Put操作將這2個RDMA緩沖區(qū)構造成一個發(fā)送方管理的遠程FIFO結構。發(fā)送方消息數據被順序拷貝到發(fā)送方的RDMA緩沖區(qū)中,然后通過RDMA Put傳輸到接收方RDMA緩沖區(qū)的相同位置,再利用遠程事件通知接收方將數據從RDMA緩沖區(qū)拷貝到接收消息緩沖區(qū)中。對較短的消息數據傳輸,還可以使用立即數RDMA Put操作,這是一種將源數據嵌入RDMA通信描述符中的通信機制,具有更低的通信延遲。理論上,這種遠程FIFO結構可以按字節(jié)順序使用,但考慮到RDMA Put傳輸在對齊Cacheline邊界時效率更高,所以切分成Cacheline長度的單元。每次消息傳輸按數據長度使用連續(xù)數個單元,只有最后1個單元會浪費少量內存未被使用。消息的第1個單元里面預留消息頭,在接收方消息頭里面的數據長度域由RDMA Put遠程事件來更新,這樣接收方可以獲知消息數據的長度。多個消息傳輸對應的數據拷貝和RDMA Put操作也是流水重疊執(zhí)行的,可以提高消息數據的傳輸帶寬。這種遠程FIFO采用靜態(tài)流控機制,RDMA緩沖區(qū)切分出的Cacheline單元數就是最大發(fā)送信用值。接收方可以通過向發(fā)送方的反向消息傳輸操作順帶回填信用,或在接收處理了足夠的單元時觸發(fā)閾值,再主動通過MP短報文回填信用。
本文編號:2908282
【文章來源】:計算機工程與科學. 2020年10期 第1720-1729頁 北大核心
【文章頁數】:10 頁
【部分圖文】:
UCX系統結構
OFI由OpenFabrics Alliance發(fā)起,其設計目標是為多種不同的高速互連定義一個抽象的新通信編程接口,覆蓋各種互連的主要功能特性,既能夠貼近應用的需求,同時又不會影響面向特定互連的實現優(yōu)化。OFI的總體結構如圖2所示,定義了MSG消息傳輸、Tag消息傳輸、RMA通信操作和原子操作等數據傳輸接口。MSG消息傳輸是2個通信端點間維護消息數據邊界的順序數據傳輸,而Tag消息傳輸則是在MSG基礎上加入了基于Tag的消息選擇接收。OFI定義了EP_DGRAM、EP_MSG和EP_RDM這幾種不同的通信端點類型,分別對應無連接不可靠報文、有連接可靠消息和無連接可靠報文通信模式,每種通信端點上能支持的接口也不同。不同于UCX的明確分層結構,OFI的接口是由各個Provider直接實現的。Provider又區(qū)分為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操作可以直接將數據從發(fā)送方傳輸到接收方,但如何協調雙方消息數據區(qū)的地址和長度信息是需要解決的技術問題。本文設計了如圖3所示的一種基于RDMA Put的消息傳輸協議。發(fā)送方和接收方各預先在內存注冊一個同樣長度的RDMA緩沖區(qū),通過RDMA Put操作將這2個RDMA緩沖區(qū)構造成一個發(fā)送方管理的遠程FIFO結構。發(fā)送方消息數據被順序拷貝到發(fā)送方的RDMA緩沖區(qū)中,然后通過RDMA Put傳輸到接收方RDMA緩沖區(qū)的相同位置,再利用遠程事件通知接收方將數據從RDMA緩沖區(qū)拷貝到接收消息緩沖區(qū)中。對較短的消息數據傳輸,還可以使用立即數RDMA Put操作,這是一種將源數據嵌入RDMA通信描述符中的通信機制,具有更低的通信延遲。理論上,這種遠程FIFO結構可以按字節(jié)順序使用,但考慮到RDMA Put傳輸在對齊Cacheline邊界時效率更高,所以切分成Cacheline長度的單元。每次消息傳輸按數據長度使用連續(xù)數個單元,只有最后1個單元會浪費少量內存未被使用。消息的第1個單元里面預留消息頭,在接收方消息頭里面的數據長度域由RDMA Put遠程事件來更新,這樣接收方可以獲知消息數據的長度。多個消息傳輸對應的數據拷貝和RDMA Put操作也是流水重疊執(zhí)行的,可以提高消息數據的傳輸帶寬。這種遠程FIFO采用靜態(tài)流控機制,RDMA緩沖區(qū)切分出的Cacheline單元數就是最大發(fā)送信用值。接收方可以通過向發(fā)送方的反向消息傳輸操作順帶回填信用,或在接收處理了足夠的單元時觸發(fā)閾值,再主動通過MP短報文回填信用。
本文編號:2908282
本文鏈接:http://lk138.cn/kejilunwen/jisuanjikexuelunwen/2908282.html