我从未使用过RDMA。虽然在单台PC上,我已经运行了使用DMA进行内存传输的命令。我可以在以太网上使用RDMA(我使用的是支持10BASE-T,100BASE-TX的交换机)。
我将使用MPI从独立于CPU的两台独立机器访问数据。
这可能吗?或者我必须购买特殊硬件?
答案 0 :(得分:3)
您需要支持RDMA的以太网卡,并且您需要可以使用这些卡的交换机。 然后你需要能够支持这些以太网卡驱动程序提供的协议的MPI。
协议(我知道,可能还有其他协议)是RoCE,它是Converged Ethernet上的RDMA(按照链接获取有关此内容的详细信息)。
我知道支持RoCE的MPI实现是Open MPI(常见问题解答here),MVAPICH,我确信还有其他人。
玩得开心。
答案 1 :(得分:0)
我现在开始支持Isis2中的RDMA(Isis2.codeplex.com),无论是在Windows还是Linux上。对于那些不喜欢使用MPI的人来说,这将是第二种选择。当然我知道你已经专门针对MPI提出了这个问题,我之所以提到它只是因为MPI有点不灵活(例如,不容错)。
我的东西提供了广泛的多播和数据复制选项,并且具有容错功能。 RDMA只是众多配置选项中的一种。
答案 2 :(得分:0)
以太网上的RDMA称为RoCE,它需要网络接口卡NIC,交换机和电缆。一家名为Mellanox的公司就是这种解决方案的供应商之一。
Mellanox还有一个名为InfiniBand的RDMA高绑定,低延迟网络结构的解决方案。
上找到相关信息大多数MPI实现都支持RDMA,包括OpenMPI。我在RoCE上使用过openmpi,性能远远优于TCP / IP套接字。
这是RDMA技术的官方网站:https://www.openfabrics.org