【问题标题】:Thread Building Block library or MPI ? which one is better for me?线程构建块库或 MPI ?哪个更适合我?
【发布时间】:2010-02-02 18:19:12
【问题描述】:

我计划学习并行计算。现在我在考虑 MPI 或 TBB。事实上,我在这方面没有太多经验。我想我最好从易于管理的东西开始。起初,我可能会尝试粗粒度代码之类的东西。哪一个对我来说更容易?谢谢。

【问题讨论】:

    标签: mpi tbb parallel-processing


    【解决方案1】:

    这取决于您对并行性的定义以及您想要实现的目标。 TBB 的重点是利用多核处理器。在这种情况下,并行意味着同时在多个内核上运行。

    然而,MPI 的主要好处是分布式内存并行计算。在这种情况下,在不同物理机器的集群上运行您的应用程序,并通过 TCP 或其他专有协议相互通信。

    总而言之,根据您的问题空间,一个或另一个可能会更好。这实际上取决于您要解决的问题。

    【讨论】:

    • 我尝试做的是并行化几个搜索过程并在每个过程之间交换信息,希望它可以改进算法的解决方案,例如使用几个不同的求解器来解决计算机集群或多台计算机上的问题核心计算机。
    • 如果您认为您的问题需要多个内核,那么 MPI 可能是您的最佳选择,因为您有更强大的扩展能力。
    【解决方案2】:

    MPI 和 TBB 在方法上非常、非常不同。

    MPI 基本上是一个message passing library。这更难用于开发线程应用程序,因为它强制执行更严格的隔离规则。但是,它确实允许您扩展到多个进程,在多个系统上运行。

    另一方面,TBB 真正致力于使单个应用程序中的线程更简单、更易于使用。它与微软的concurrency runtime 甚至TPL in the .NET world 的方法非常相似。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 2023-03-03
      • 2011-01-12
      • 1970-01-01
      • 2015-09-02
      相关资源
      最近更新 更多