【问题标题】:Using Boost MPI for sending files?使用 Boost MPI 发送文件?
【发布时间】:2010-10-17 15:34:15
【问题描述】:

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

完成了吗?你会推荐它吗?

【问题讨论】:

  • 700MB 接近边缘:MPI 消息大小以 32 位 ints 计算。最近的 MPI-4 可以处理比这更大的消息。

标签: c++ boost mpi


【解决方案1】:

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

按照reference documentation的说法,700mb的文件应该没有问题

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

【讨论】:

  • 我觉得有趣的是,即使您不知道 Dan​​ielSwe 正在构建什么样的应用程序,您也可以推荐 MPI。可能是分布式系统中间件更合适……我们只是不知道。
【解决方案2】:

请记住,Boost MPI 要求您已经在要发送文件的系统上实现 MPI(OpenMPIMPICH2MVAPICH2 等)。您需要获得其中之一才能与 Boost MPI 一起使用。

另外请记住,MPI 专为高性能集群而设计,大多数 MPI 实现都假设您拥有可靠的硬件。也就是说,如果您在 MPI 中编写了一个应用程序并且您的某个进程出现故障,那么它们很可能都会死掉。

如果您打算在自己的网络上的本地环境中使用它,并且打算主要运行批处理作业而不是持久性服务,那么 MPI 可能是一个不错的选择。如果不是,那么请研究为更分散、更不可靠的环境设计的其他一些消息传递解决方案。

【讨论】:

  • Boost.MPI 只是消息传递接口的一个包装器,它与 C++ 没有太大关系。请参阅:mcs.anl.gov/research/projects/mpi 已经多次尝试使 MPI 更具容错性(请参阅 open-mpi.org/faq/?category=ft
  • 但其中没有多少能够流行或成为主要实现,主要是因为标准中没有很好地规范容错。随着大型集群的内核数超过 100k,它现在才变得真正有必要......在过去,MPI 一直适用于高性能机器。
猜你喜欢
  • 2015-08-20
  • 2014-09-17
  • 1970-01-01
  • 2018-05-25
  • 2011-12-28
  • 2011-11-21
  • 2012-11-26
  • 2019-08-12
  • 1970-01-01
相关资源
最近更新 更多