1

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

  1. 单四核机器。我想在每个核心上执行四个相同类型的功能。同一个函数接受不同的参数。
  2. 一个由 4 台机器组成的集群,每台机器都具有多核。我想执行相同的功能,但 n 并行(4 台机器 * 每台机器中的核心数)。所以我希望它扩大规模。

节目详情:

  1. C++ 程序。函数之间没有依赖关系。使用不同的输入集执行相同的功能并完成超过 100 次
  2. 没有共享内存,因为每个函数都有自己的数据和自己的输入。
  3. 每个功能都不需要等待其他功能完成。无需加入或分叉。

对于上述情况,可以使用什么最好的并行库?MPI、BOOST::MPI、打开 mp 或其他库。

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

谢谢。

4

1 回答 1

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 可能不会削减它。

于 2013-07-12T14:31:13.393 回答