C++ 并行处理库

C++ 并行处理库,c++,parallel-processing,C++,Parallel Processing,我想知道在这些配置下最好使用哪个并行处理库: 单四核机器。我想在每个内核上执行四个相同类型的函数。同一个函数接受不同的参数 由4台机器组成的集群,每台机器都有多核。我希望执行相同的功能,但n-并行(4台机器*每台机器中的核数)。所以我希望它能够扩展 节目详情: C++程序。函数之间没有依赖关系。同一函数使用不同的输入集执行,并完成>100次 没有共享内存,因为每个函数都有自己的数据和输入 每个功能不需要等待其他功能完成。不需要连接或分叉 对于上述场景,可以使用的最佳并行LIB是什么?MPI、BO

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

  • 单四核机器。我想在每个内核上执行四个相同类型的函数。同一个函数接受不同的参数
  • 由4台机器组成的集群,每台机器都有多核。我希望执行相同的功能,但n-并行(4台机器*每台机器中的核数)。所以我希望它能够扩展
  • 节目详情:

  • C++程序。函数之间没有依赖关系。同一函数使用不同的输入集执行,并完成>100次
  • 没有共享内存,因为每个函数都有自己的数据和输入
  • 每个功能不需要等待其他功能完成。不需要连接或分叉
  • 对于上述场景,可以使用的最佳并行LIB是什么?MPI、BOOST::MPI、open mp或其他LIB

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


    谢谢。

    这里有一个令人尴尬的平行问题()。虽然MPI肯定可以在多核机器上使用,但对于手头的问题来说,它可能是致命的。如果任务完全分离,您可以将它们编译成单独的可执行文件或具有不同输入的单个可执行文件,并使用“make-j[n]”(请参阅)并行执行它们


    如果你自然而然地想到了MPI,那么一定要使用它。如果您想在集群内的不同计算机上控制计算,OpenMP可能不会解决这个问题。

    对于第一个问题,我认为新的标准线程和异步调用应该足够了。