据我所知,OpenMPI使用OpenIB,OpenIB使用Ip over Infiniband(IPoIB)。
我不明白为什么不使用原生IB,如果它比IPoIB快?
是否有任何MPI实现,它使用原生IB?
答案 0 :(得分:2)
OpenIB是Open Fabrics Alliance使用的早期名称。早在2005年,OpenIB这个名字就被抛弃了,转而支持Open Fabrics。 Open Fabrics Alliance分发OFED软件堆栈,支持许多协议和API,包括DAPL,IPoIB,基于RDMA的SCSI等等。 OFED依赖于硬件供应商提供的低级设备驱动程序。
一些硬件供应商分发他们的OFED定制版本。这些自定义版本与任何其他OFED发行版没有太大差别,除非它们与设备驱动程序捆绑在一起。
过去OFED过去常常包含MPI实现,即OpenMPI,但不再这样做(you probably read the OpenMPI FAQ)。
OpenMPI仍为其基于OFED的InfiniBand Byte Transfer Level组件使用openib
名称。
在不同时期,OpenMPI也支持供应商特定的InfiniBand API,例如Mellanox mVAPI(mvapi
BTL)和Mellanox Messaging Library mxm
。
但是,openib
提供了可移植性,如果您使用最新版本,您的性能可能与供应商特定的API一样好。
openib
组件未使用 IP over IB。如果您想使用IP over IB,请使用tcp
组件,并相应地设置mpiexec
主机文件。
答案 1 :(得分:-1)
AFAIK,MVAPICH2是一个不使用IPoIB的MPI发行版,即它直接使用动词。