RDMA is an effective way to circumvent useless copies of data between the application core and the OS. Mmap is an efficient way to work with a large file, as if it were just an array of bytes.
I work with MPI through Infiniband, which supports RDMA network operations between processes. Each MPI process has a very large file for sharing with others.
Can each MPI process make an mmap area over each large file and share it with others? I want to allow each process to read any file of any process, as if it was reading its memory through RDMA (MPI one-way communication).
As far as I know, when an application invokes an RDMA operation, it directly passes the virtual memory address to the NIC. The NIC will handle the translation from the virtual memory address to the physical memory address. If the RDMA driver links a page of interests before it sends a request to the NIC, I think it will work. Does anyone have experience ?: D
thanks
source
share