使用Boost MPI发送文件?

3

我能否使用Boost MPI将文件发送到其他计算机? 我担心它仅针对非常小的消息进行优化,而不是更大的消息(我需要一次发送700 MB或更多)。原因是我可能会在程序的其他部分中使用mpi,所以认为这不混合匹配是一个很好的解决方案。

这样做过吗? 你会推荐吗?


700MB已经接近极限了:MPI消息大小以32位int计算。最近的MPI-4可以处理比这更大的消息。 - Victor Eijkhout
2个回答

3
请记住,Boost MPI要求您在要发送文件的系统上已经有MPI实现(如OpenMPIMPICH2MVAPICH2等)。 您需要获取其中的一个以配合使用Boost MPI。
还要记住,MPI是为高性能集群设计的,大多数MPI实现都假定您拥有可靠的硬件。 也就是说,如果您在MPI中编写了一个应用程序,并且其中一个进程关闭,则很可能它们全部会死亡。
如果您计划在自己的网络上的本地环境中使用此功能,并且您打算主要运行批处理作业而不是持久服务,则MPI可能是一个不错的选择。 如果不是,请查看一些其他消息传递解决方案,这些解决方案专为分布式、不太可靠的环境而设计。

Boost.MPI只是一个对消息传递接口的包装器,与C++没有太多关系。请参见:http://www.mcs.anl.gov/research/projects/mpi/。已经有许多尝试使MPI更具容错性(请参见http://www.open-mpi.org/faq/?category=ft)。 - Todd Gamblin
但是并不是很多这样的方法已经被采用或已应用于主要实现,主要是因为在标准中没有很好地规定容错。随着大型群集扩张到超过10万个核心,容错现在才真正变得必要。在过去,MPI对于高性能计算机已经足够了。 - Todd Gamblin

2

MPI是为高性能并行应用程序设计的,因此我绝对推荐使用它。(请记住,所有已被接受的Boost库都经过了彻底的验证和测试)

根据参考文档,700MB的文件不应该有任何问题。

另一个(希望有趣的)特点是:“Boost.MPI进程可以分布在许多不同的机器上,可能具有不同的操作系统和基础架构。”


1
我觉得很有趣,即使你不知道DanielSwe正在构建什么样的应用程序,你仍然可以推荐MPI。可能分布式系统中间件更合适...我们只是不知道而已。 - oz10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接