一種基於RDMA通信機制的IB‑RTI方法與流程
2023-05-18 04:30:41 4

本發明涉及rdma通信領域,尤其涉及一種基於rdma通信機制的ib-rti方法。
背景技術:
隨著高性能並行計算技術和高速的網絡技術的迅猛地發展,高性能的計算機已經成為高層體系結構的新的硬體環境,因此,高性能的高層體系結構也成為了仿真技術的研究焦點。高性能計算機多核的特性,再加上各個高性能計算機節點間的高速通信網絡,成為高層體系結構仿真提供多種的通信的硬體環境和通信方式。如在一個計算的節點內可以採用共享式內存的方式、計算節點間通過ib網絡來連接。
目前,在單個計算節點內,採用rti的底層的通信機制大多基於共享內存機制;對於多核間的通信方式,計算節點之間的通信,如何能夠減少數據傳輸過程中的數據複製的時間,有效縮短仿真運行時間是當前丞待解決的技術問題。
技術實現要素:
為了克服上述現有技術中的不足,本發明提供一種基於rdma通信機制的ib-rti方法,伺服器端通信方法包括:
創建rdma協議連接埠;
註冊伺服器端rdma操作緩存;
當客戶端基於rdma協議申請連接時,接受客戶端連接請求,並回復連接成功指令;
交換qp信息,修改客戶端的qp信息狀態級;
接收已建立連接客戶端發送的數據信息以及向已建立連接的客戶端發送數據信息。
優選地,當伺服器端與所述客戶端完成數據通信後,關閉與所述客戶端的連接埠;
釋放伺服器端的rdma操作緩存;
釋放rdma協議連接埠。
優選地,步驟註冊rdma操作緩存之後還包括:
監測連接埠狀態,等待客戶端申請連接。
優選地,客戶端通信方法包括:
創建rdma協議客戶端連接埠;
註冊客戶端rdma操作緩存;
向伺服器端發送申請連接請求信息;
接收伺服器端發送的連接成功指令,同時根據qp信息,修改qp信息狀態級;
接收伺服器端發送的數據信息以及向伺服器端發送數據信息。
優選地,當伺服器端與所述客戶端完成數據通信後,關閉與伺服器端的連接埠;
釋放客戶端rdma操作緩存;
釋放客戶端連接埠。
優選地,步驟修改qp信息狀態級包括:
客戶端創建qp信息,修改狀態級reset到init,修改init到rtr;
發送到伺服器端,伺服器端創建qp信息,修改狀態級init到rtr,發送到客戶端;
客戶端修改狀態機由rtr到rts,發送到伺服器端;
伺服器端修改狀態機由rtr到rts,創建qp信息成功。
優選地,步驟監測連接埠狀態,等待客戶端申請連接包括:
獲取使用rdma傳輸的客戶端數據;
根據ibv_get_device_list結構中的dev_name找到目標客戶端。
優選地,步驟交換qp信息,修改客戶端的qp信息狀態級之前還包括:
獲取客戶端的句柄;
獲取客戶端的屬性;
查詢客戶端埠屬性,交換qp信息。
從以上技術方案可以看出,本發明具有以下優點:
基於rdma通信機制的ib-rti方法定義了傳輸數據的結構;優化了certi的通信部分,完成了ib-certi軟體原型開發;提高了仿真數據的傳輸效率。
附圖說明
為了更清楚地說明本發明的技術方案,下面將對描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明方法中伺服器端的通信流程圖;
圖2為本發明方法中伺服器端的通信實施例流程圖;
圖3為本發明方法中客戶端的通信流程圖;
圖4為本發明方法中客戶端的通信實施例流程圖。
具體實施方式
為使得本發明的發明目的、特徵、優點能夠更加的明顯和易懂,下面將運用具體的實施例及附圖,對本發明保護的技術方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發明一部分實施例,而非全部的實施例。基於本專利中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬於本專利保護的範圍。
本實施例提供一種基於rdma通信機制的ib-rti方法,本發明將伺服器端與客戶端之間的通信方式分開說明,如圖1所示,伺服器端通信方法包括:
s1、創建rdma協議連接埠;
s2、註冊伺服器端rdma操作緩存;
s3、當客戶端基於rdma協議申請連接時,接受客戶端連接請求,並回復連接成功指令;
s4、交換qp信息,修改客戶端的qp信息狀態級;
s5、接收已建立連接客戶端發送的數據信息以及向已建立連接的客戶端發送數據信息。
如圖1所示,伺服器端通信方法還包括:
s11、創建rdma協議連接埠;
s12、註冊伺服器端rdma操作緩存;
監測連接埠狀態,等待客戶端申請連接。
具體的,獲取使用rdma傳輸的客戶端數據;
根據ibv_get_device_list結構中的dev_name找到目標客戶端。
s13、當客戶端基於rdma協議申請連接時,接受客戶端連接請求,並回復連接成功指令;
s14、交換qp信息,修改客戶端的qp信息狀態級;
具體的,獲取客戶端的句柄;獲取客戶端的屬性;查詢客戶端埠屬性,交換qp信息。
s15、接收已建立連接客戶端發送的數據信息以及向已建立連接的客戶端發送數據信息。
s16、當伺服器端與所述客戶端完成數據通信後,關閉與所述客戶端的連接埠;
s17、釋放伺服器端的rdma操作緩存;
s18、釋放rdma協議連接埠。
本發明中,客戶端的基於rdma通信機制的ib-rti方法包括:如圖3所示,
s21、創建rdma協議客戶端連接埠;
s22、註冊客戶端rdma操作緩存;
s23、向伺服器端發送申請連接請求信息;
s24、接收伺服器端發送的連接成功指令,同時根據qp信息,修改qp信息狀態級;
s25、接收伺服器端發送的數據信息以及向伺服器端發送數據信息。
如圖4所示,客戶端通信方法還包括:
s21、創建rdma協議客戶端連接埠;
s22、註冊客戶端rdma操作緩存;
s23、向伺服器端發送申請連接請求信息;
s24、接收伺服器端發送的連接成功指令,同時根據qp信息,修改qp信息狀態級;
具體的,客戶端創建qp信息,修改狀態級reset到init,修改init到rtr;
發送到伺服器端,伺服器端創建qp信息,修改狀態級init到rtr,發送到客戶端;
客戶端修改狀態機由rtr到rts,發送到伺服器端;
伺服器端修改狀態機由rtr到rts,創建qp信息成功。
s25、接收伺服器端發送的數據信息以及向伺服器端發送數據信息。
s26、當伺服器端與所述客戶端完成數據通信後,關閉與伺服器端的連接埠;
s27、釋放客戶端rdma操作緩存;
s28、釋放客戶端連接埠。
本發明中,基於rdma通信機制的ib-rti方法需對certi結構和接口進行獲取,獲取certi通信底層的運行的機制和各模塊包含的關係梳理清楚。其網絡通信本質上是調用libcerti中的sockettcp和socketudp兩個功能函數,完成網絡通信的整個操作。在進行網絡通信時,負責讀取文件,並進行連接的創建,同時,監聽每個連接所發送的消息,進行相應的處理和分發。
在本方法中ib-rti網絡優化,包括數據結構和消息格式的定義,保證不修改其他個程序模塊,使消息能夠通過rdma協議進行傳輸。具體的就是消息的部分就是定義了數據發送的地址,這包括主機的ip地址和埠號,準備接受/發送的數據緩存以及數據的長度;資源的設置的定義跟rdma相關的資源的標識的內容。所有參與網絡通信的數據,最終都是要封裝成上述的消息的格式。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其它實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。