mpi - 高效的单向沟通

标签 mpi rdma

我正在寻找可用于高效实现 RDMA 的高效单向通信库。

目前,我研究了 MPI-2 实现,例如 MPICH2 和 MVAPICH2(使用 RDMA 的基于 InfiniBand 架构的 MPI-2 实现)。

MVAPICH2 有很多我正在寻找的功能,不幸的是,我无法使用它,因为我目前在我的大学无法访问 InfiniBand 架构。

所以我真正想要的是,是否有任何其他库(不是必需的 MPI 实现变体)在减少通信进程之间的开销方面可以被认为是有效的(例如:避免会合协议(protocol)中的握手,从而从目标卸载开销过程)。

我也很感激任何能帮助我做一些不同的事情而不是找到一个成熟的合适库的建议。

谢谢。

最佳答案

首先,RDMA 和 RMA 不是一回事。 RDMA 需要某种专用硬件(例如 InfiniBand)才能直接访问应用程序缓冲区。例如,如果您通过 TCP 执行单侧 RMA 操作,您仍在通过操作系统内核并在此过程中制作多个数据副本。

您可以使用单向 MPI 操作编写您的应用程序,使用在以太网上运行的 MPI 库对其进行测试,当时机成熟并且您可以访问更快的硬件时,只需将 MPI 库替换为支持 RDMA 的东西即可。

或者,查看一些较低级别的库,例如 ARMCI 和 GASNet。但没有专门的硬件,RDMA 是做不到的。

您是否想到了符合这些要求的特定应用程序?

关于mpi - 高效的单向沟通,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10320127/

相关文章:

parallel-processing - MPI:阻塞与非阻塞

c - MPI:锁定标准输出——一次 1 个进程?

mpi - 我可以在 Windows 7 Visual Studio 2010 中的非 GPU 计算机上运行 MPI 应用程序吗?

linux - 如何通过 RDMA (Infiniband) 从 KVM 代码中向另一个 KVM 实例发送消息?

linux - Rdma infiniband 无法打开主机(iberror : discovery failed) Port state: Down

linux - 选择共享内存系统、MPI 库、原始 RDMA 还是 ULP over RDMA?

sockets - 运行MPI时有没有办法先执行顺序代码,然后运行并行代码

c - C语言的分布式算法