【问题标题】:For distributed applications, which to use, ASIO vs. MPI?对于分布式应用程序,ASIO 与 MPI 使用哪个?
【发布时间】:2010-03-19 18:23:36
【问题描述】:

我对此有点困惑。如果您正在构建一个分布式应用程序,在某些情况下可能会执行并行操作(尽管不一定是数学运算),您应该使用 ASIO 还是 MPI 之类的东西?我认为 MPI 比 ASIO 更高级别,但尚不清楚堆栈从何处开始。

【问题讨论】:

    标签: network-programming distributed boost-asio mpi distributed-computing


    【解决方案1】:

    我对 ASIO 一无所知,但从快速的谷歌上看,它看起来比 MPI 低很多。对我来说,MPI 的全部意义在于,我可以针对比 ASIO 提供的更高级别的消息抽象进行编程。你从哪里开始取决于你的需要。对于我来说,并行化高性能科学代码,显而易见的答案是 MPI。我不确定我是否会使用它,或者至少不确定它是否是我的默认选择,如果我正在编写更通用的分布式应用程序,而不是并行应用程序。好吧,实际上,避免学习另一种方法可能是我的默认选择(其中大多数方法的便携性和寿命都不如 MPI),但我承认,如果从平等的基础开始,它可能不是最佳选择。

    【讨论】:

    • 所以 MPI 真正面向科学并行和数学,而不是通用分布式编程。这么说好吗?
    • 是的,这可能是公平的。这就是 MPI 的来源和使用最多的领域。而且它比分布式更适合并行计算;例如,它确实不能很好地处理 gang 中的进程失败,而这是许多分布式计算所需要的。
    【解决方案2】:

    据我所知,当新的分布式节点想要加入已经启动的组时,MPI 目前无法处理这种情况。如果其中一个节点下线,也可能会出现问题。

    MPI 不会显示任何与网络相关的机器。因此,如果您需要较低级别的东西-您就有麻烦了。另一方面,如果您没有这种需求,那么使用 MPI 将为您节省大量时间。

    【讨论】:

      猜你喜欢
      • 2018-04-27
      • 1970-01-01
      • 2015-11-23
      • 2019-10-10
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      相关资源
      最近更新 更多