1

我不是并行编程方面的专家。但我很好奇我是否可以在同一个应用程序中同时使用它们。有什么好处吗?可以办到?似乎没有人问这个问题。结合 OpenMP 和 MPI 也有类似的问题。一般的答案是肯定的,取决于。但我对 MPI 不是很熟悉。

4

1 回答 1

2

MPI 在某种意义上与 OpenMP 是正交的——它是一种编程分布式内存系统的范例,其中每个 MPI 进程无法直接访问其他 MPI 进程的内存(例如,不同的进程在不同的计算节点上运行)。由于现在大多数计算节点都是多核的,因此可以使用 OpenMP 或其他线程方法对每个节点进行编程,并使用 MPI 在节点之间交换消息。OpenMP 和boost:threads都是线程范式。boost::threads除了用于执行常规线程任务和概念上更简单的 OpenMP 用于某些数据并行任务之外,我认为混合它们没有任何意义。

于 2012-06-14T13:39:15.363 回答