我是计算流体动力学家(CFD),但我不太了解mpi.
由于重型CFD工作需要Infiniband支持,人们说mvapich通常比其他mpi实现要好得多.我想知道这是真的吗?任何人都有我可以看到的真实经验和参考资料吗?为什么mvapich比openmpi等更好?它是由Infiniband公司写的还是什么?
非常感谢!
所以答案是"可能不是,反正无关紧要".
您使用MPI API编写代码,并且可以始终安装多个MPI库并针对每个MPI库进行测试,就像使用多个LAPACK实现一样.如果您的应用程序始终更快,请使用它.但MPI社区非常关注性能,免费的竞争对手都是开源的,并在论文中发布他们的方法,并且都发布了许多基准测试.友好的rivalary与开放性相结合,往往意味着没有实施具有显着的性能优势.
在我们的大型x86集群上,我们使用MPICH2,OpenMPI,MVAPICH2和IntelMPI完成了"真实世界"和微基准测试.在三个开源版本中,没有明显的赢家; 在某些情况下,一个人会赢得10-20%,而在另一些情况下,他们会损失相同的金额.在我们有兴趣深入了解细节以找出原因的那几个场合,通常只是默认情况下,例如急切限制或不同集体算法之间的交叉,并通过设置几个环境变量我们获得了性能他们之间的噪音.在其他情况下,性能优势仍然存在,但要么不够大或不够一致,我们无法进一步调查.
(占用大量资金的英特尔MPI,虽然我们认为这次大赢家大大改善了大型工作的启动时间,但却显着且大多数情况下仍然更快.)
MVAPICH是第一个真正追求Infiniband性能的MPI实现之一,在拥有Myrinet的丰富经验之后,他们确实在相当长的一段时间内拥有了显着的优势,并且可能还有基准,他们仍然获胜; 但最终没有一致且重要的性能获胜,我们选择OpenMPI作为我们的主要开源MPI选项.
我同意Jonathan的答案,并从集群管理的角度补充几点.
作为一个有时会进入集群管理的人,我会补充说,在大型集群上调整InfiniBand并不是一件容易的事.您必须确保OFED堆栈很好地适用于您的内核.硬件没有故障,交换机正常工作,在持续模式下没有性能问题,应用程序正确映射到InfiniBand拓扑结构等等.
OpenMPI堆栈与MPICH/MVAPICH有很大不同.我发现OpenMPI组件架构比MPICH/MVAPICH的架构更容易找到和调试问题,我发现它更加单一.
说到供应商回忆起MPICH来自Argonne的MCS部门.
更新:自版本3.1 MPICH通过ib网络模块支持OFED InfiniBand.由于3.2 MPICH也将支持Mellanox MXM接口.
MVAPICH建立在俄亥俄州立大学CS&E系人员的MPICH资源之上.
许多硬件供应商都在MPICH或MVAPICH之上构建,以便为其各自的硬件提供InfiniBand支持.一个例子是英特尔MPI.另一个是伏尔泰MPI.
OpenMPI由思科等InfiniBand交换机供应商支持的几个团队开发.
HP MPI曾经是普通集群的另一个非常好的MPI实现,目前可从Platfrom获得.
| 归档时间: |
|
| 查看次数: |
5847 次 |
| 最近记录: |