2015-05-22 66 views
0

我是高性能計算(HPC)方面的新人,但我將擁有一個HPC項目,因此我需要一些幫助來解決一些基本問題。通過RDMA選擇共享內存系統,MPI庫,原始RDMA還是ULP?

應用場景很簡單:通過InfiniBand(IB)網絡連接的幾臺服務器,主服務器的一臺服務器和從服務器的其他服務器。只有主機讀寫內存中的數據(數據的大小範圍從1KB到幾百MB)到從機中,而從機只是被動地將數據存儲在它們的存儲器中(並在正確的時間將內存數據轉儲到磁盤中)。所有的計算都是在主設備上執行,在寫入之前或從/從從設備讀取數據之後執行。該系統的要求是低延遲(數據的小區域,例如1KB-16KB)和高吞吐量(大數據區域,幾百MB)。

所以,我的問題是

1.哪些具體的方式是更適合我們呢? MPI,原始IB/RDMA庫或RDMA上的ULP。

據我所知,現有的消息傳遞接口(MPI)庫,原始IB/RDMA庫如libverbslibrdmacm和用戶級Protocal(ULPS)在RDMA可能是可行的選擇,但我不是很確定的適用範圍。

2.我應該爲操作系統還是IB網絡進行調整以獲得更好的性能?

存在紙張[1]微軟宣佈

我們提高了性能 多達八個仔細調整的一個因素, 更改操作系統和NIC驅動

就我而言,我會盡力避免這種性能調整。但是,如果調整是不可避免的,我會盡我所能。我們環境的IB網絡是Mellanox InfiniBand QDR 40Gb/s,我可以自由選擇適用於服務器的Linux操作系統。

如果您有任何想法,意見和答案,歡迎! 在此先感謝!

[1] FaRM: Fast Remote Memory

+0

我投票結束這個問題主要是基於意見的。列出的每項技術都可以用於實現特定目標中的一個或另一個,儘管在易用性和代碼可維護性方面價格不同。沒有錯綜複雜的應用程序網絡配置知識,我懷疑任何人都可以回答第二個問題。 –

+0

@HristoIliev感謝您的評論。我想澄清我的問題:首先,哪種方法可以實現我的應用程序的要求?其次,我怎樣才能通過選擇一個適合我需求的成熟庫來避免調優工作(就像快速遠程'memcpy')。 – foool

回答

0

如果您使用MPI,你將有一個互連獨立的解決方案的好處。這聽起來不像是你將要保持20年的東西,但軟件的持續時間比你想象的要長。

使用MPI還爲您提供了在您的筆記本電腦或工作站上進行調試的好處,然後再將其推出到infiniband機器上。

至於你關於調整網絡的第二個問題,我相信你可以做的調整沒有結束,但是直到你有一些真實的工作負載和硬數字,你是在浪費你的時間。讓事情先行,然後擔心優化網絡。也許你需要調整許多小包裝。也許你需要擔心一些大的轉移。根據情況調整會有很大的不同。