Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我不是并行编程方面的专家。但我很好奇我是否可以在同一个应用程序中同时使用它们。有什么好处吗?可以办到?似乎没有人问这个问题。结合 OpenMP 和 MPI 也有类似的问题。一般的答案是肯定的,取决于。但我对 MPI 不是很熟悉。
MPI 在某种意义上与 OpenMP 是正交的——它是一种编程分布式内存系统的范例,其中每个 MPI 进程无法直接访问其他 MPI 进程的内存(例如,不同的进程在不同的计算节点上运行)。由于现在大多数计算节点都是多核的,因此可以使用 OpenMP 或其他线程方法对每个节点进行编程,并使用 MPI 在节点之间交换消息。OpenMP 和boost:threads都是线程范式。boost::threads除了用于执行常规线程任务和概念上更简单的 OpenMP 用于某些数据并行任务之外,我认为混合它们没有任何意义。
boost:threads
boost::threads