并行处理库

时间:2013-07-12 14:15:57

标签: c++ parallel-processing

我想知道在这些配置下最适合使用哪个并行处理库:

  1. 单核四核机器。我想在每个核心上执行四个相同类型的功能。相同的函数需要不同的参数。
  2. 一组4台机器,每台机器都有多核。我想执行相同的功能,但是n-parallel(每台机器中有4台机器*没有内核)。所以我希望它能够扩展。
  3. 计划详情:

    1. C ++程序。函数之间没有依赖关系。使用不同的输入集执行相同的功能,并且对于>完成。 100次
    2. 没有共享内存,因为每个函数都有自己的数据和自己的输入。
    3. 每个功能都不需要等待其他人完成。不需要加入或分叉。
    4. 对于上述场景,可以使用哪种最佳并行库? MPI,BOOST :: MPI,open mp或其他库。

      我的偏好是BOOST :: MPI,但我想要一些建议。我不确定并行多核机器是否允许使用MPI?

      感谢。

1 个答案:

答案 0 :(得分:2)

这里有一个令人尴尬的并行问题(http://en.wikipedia.org/wiki/Embarrassingly_parallel)。虽然MPI肯定可以在多核机器上使用,但对于手头的问题来说可能会过度杀戮。如果您的任务完全分开,您可以将它们编译为单独的可执行文件或具有不同输入的单个可执行文件,并使用“make -j [n]”(请参阅​​http://www.gnu.org/software/make/manual/html_node/Parallel.html)并行执行它们。

如果MPI对您来说很自然,请务必使用它。如果您想在群集中的不同计算机上控制计算,OpenMP可能不会削减它。