我正在寻找一种有效的单侧通信库,可以用来有效地实现RDMA。
目前我看看MPI-2实现,如MPICH2和MVAPICH2(基于InfiniBand Architecture的MPI-2实现,使用RDMA操作)。
MVAPICH2有很多我正在寻找的功能,不幸的是我无法使用它,因为我目前无法访问我所在大学的InfiniBand架构。
所以我真正想要的是,是否有任何其他库(不是必需的MPI实现变体)可以被认为是有效的减少沟通过程之间的过头(例如:避免在集合协议中的握手,因此从目标过程)。
我也很乐意提供任何建议,帮助我做一些与众不同的建议,而不是寻找一个熟食的图书馆。
感谢。
答案 0 :(得分:4)
首先,RDMA和RMA不是一回事。 RDMA 需要某种专用硬件(如InfiniBand)才能直接访问应用程序缓冲区。例如,如果您通过TCP进行单向RMA操作,那么您仍然需要通过操作系统内核并在此过程中制作多个数据副本。
您可以使用单面MPI操作编写应用程序,使用在以太网上运行的MPI库对其进行测试,并且当时机到来并且您可以访问更快的硬件时,只需用支持RDMA的东西替换MPI库。 / p>
或者,查看一些较低级别的库,例如ARMCI和GASNet。但没有专门的硬件可以做RDMA。
对于这些要求,您是否有特定的应用程序?
答案 1 :(得分:1)
为了补充G.Inozemtsev的答案,这里有更多的参考资料。
在几个项目中调查了千兆以太网上的高效单向通信。有几个GigE供应商为其提供硬件支持的iWARP(基于互联网的广域RMDA协议)。
来自D.K.的iWARP有几篇论文。熊猫 1. P. Balaji等人。支持常规网络适配器的iWARP兼容性和功能,2005 2. S. Naravulla等人。高性能MPI优于iWARP:早期经验,2007
另一个选项是Berkeley Active Messages,可以在UDP之上实现。
据我所知,随着InfiniBand织物的广泛应用,这一研究方向尚未得到积极开发。