我有幾臺由Infiniband網絡連接的多核心計算機。我想通過遠程原子操作對共享內存池進行一些低延遲計算。我知道RDMA是要走的路。在每個節點上,我將註冊一個內存區域(和保護域)用於數據共享。RDMA內存共享
在線RDMA示例通常關注單線程服務器和單線程客戶端之間的單個連接。現在我想在每個Infiniband節點上都有一個多線程的進程。我對下面很是不解......
我應該有多少的隊列對準備在每個節點上,在總共n個節點和m個線程的集羣?更具體地說,同一節點上的多個線程可以共享相同的隊列對嗎?
我應該在每個節點上準備多少個完成隊列?我將有多個線程在每個節點上發出遠程讀/寫/操作。如果他們要分享一個共同的完成隊列,完成事件將被混淆。如果線程有他們自己分離的完成隊列,那麼會有很多這樣的隊列。
你是否建議我有任何現有的庫而不是編寫此軟件? (嗯,或者我應該寫一個開源的它:?)
謝謝你的建議。
並且隊列對(QP),完成隊列(CQ)和共享接收隊列(SRQ)的源代碼必須自行編寫,或者我可以準備好它們的實現(作爲最佳實踐)並且它們可以在哪裏採取? – Alex 2013-09-01 22:31:38