4
RDMA是繞過應用程序和操作系統內核之間無用數據副本的有效方法。 Mmap是處理大文件的有效方式,就好像它只是一個字節數組。RDMA在mmaped區域上運行時會發生什麼?
我正在使用MPI over Infiniband,它支持進程之間的RDMA網絡操作。每個MPI進程都有一個非常大的文件與其他人共享。
每個MPI進程是否可以在每個大文件上創建mmap區域並與其他人共享?我希望允許每個進程讀取任何進程的任何文件,就像通過RDMA(MPI的單向通信)讀取其內存一樣。
據我所知,當應用程序調用RDMA操作時,它直接將'虛擬內存地址'傳遞給NIC。 NIC將處理從虛擬內存地址到其物理內存地址的轉換。如果RDMA驅動程序在向NIC發出請求之前固定了感興趣的頁面,我認爲它會起作用。有沒有人有任何經驗? :d
感謝
感謝您的好答案:D我希望英特爾的MPI庫在Linux和Windows中都使用這個概念。 (似乎有必要固定興趣頁面,以便RDMA可以安全地閱讀頁面。) – syko