什么是最好的MPI实现

pra*_*nna 25 parallel-processing mpi

我必须在集群中实现MPI系统.如果这里的任何人有MPI(MPICH/OpenMPI)的任何经验,我想知道哪个更好,以及如何在x86_64盒的集群上提升性能.

dma*_*oni 21

MPICH已经存在了很长时间.它非常便携,你会在网上找到多年的技巧和窍门.这是一个安全的赌注,它可能与更多的MPI程序兼容.

OpenMPI更新.虽然它不那么便携,但它确实支持最常见的平台.大多数人似乎认为它在几个方面要好得多,特别是对于容错 - 但要利用这一点,你可能不得不使用一些不属于MPI标准的特殊功能.

至于性能,它在很大程度上取决于应用; 提供一般性建议很难.您应该发布一个特定的问题,关于您要运行的计算类型,节点数量和硬件类型 - 包括您正在使用的网络硬件类型.


Mik*_*ike 9

我为Windows和Linux集群编写了很多并行应用程序,我可以告诉你,MPICH2可能是更安全的选择.正如其他响应者所提到的那样,它是一个非常成熟的图书馆.此外,现在有足够的广播支持(通过MPI_Bcast),事实上,MPICH2有很多非常好的功能,如分散和聚集.

OpenMPI虽然获得了一些进展.Penguin计算(他们是一个大型集群供应商,他们喜欢Linux)实际上有一些非常强大的基准,OpenMPI在某些情况下击败了MPICH2.

关于你关于"提升性能"的评论,我能给出的最好的建议是,如果你受到I/O限制,永远不会发送超过绝对必要的数据,如果你受CPU限制,就不要做更多必要的工作.我已经陷入了不止一次优化错误代码的陷阱:)希望你不会跟随我的脚步!

查看MPI论坛 - 他们有很多关于MPI例程的好信息,Beowulf网站有很多有趣的问题可以解答.