我的集群在 Infiniband FDR 上使用 MVAPICH2,并且我正在考虑使用 RDMA 进行模拟。我知道 MPI_Put 和 MPI_Get 调用显式调用 RDMA 操作,但是我想知道这是否是在 MPI 中使用 RDMA 的唯一方法。
我当前的实现涉及用于通信的通道语义(发送/接收)MPI_Reduce
以及MPI_Gatherv
. 我知道 MVAPICH2 具有可用于启用 RDMA 的配置参数。如果使用 MPI 的程序具有发送/接收调用并且启用了 RDMA,MPI 是否会自动从通道语义转换为内存语义(put/get),还是在 MVAPICH2 中显式使用MPI_Put
和MPI_Get
唯一实现 RDMA 的方法?
MPI_Send
需要相应的MPI_Receive
,无论它们是阻塞还是非阻塞都无关紧要,因为发送必须满足接收。RDMA 没有此要求,而是仅实现MPI_Put
(写入远程内存)或MPI_Get
(从远程内存读取)。我试图找出在仍然使用发送和接收的同时启用 rdma 是否允许 MVAPICH2 以某种方式自动将发送/接收转换为适当的 rdma 调用。