【发布时间】:2022-01-24 22:18:33
【问题描述】:
我有一个代码,其中一部分代码使用 MPI,另一部分使用 OpenMP。我关注了 (MPI OpenMp hybrid) 链接和其他几个链接,但无法完成我需要的操作。当 MPI 部分执行计算时,OpenMP 不做任何事情,反之亦然。
我可以成功编译代码。
现在假设我运行代码
mpirun -np 4 ./program
如何运行代码,以便当代码遇到 OpenMP 部分时,它会在与 np 相同数量的线程中运行?
【问题讨论】:
-
您使用的是哪个 MPI 库?
-
基本上这种方式是行不通的。如果您有 8 个内核,例如,您将启动 4 个 MPI 任务,每个任务有 2 个 OpenMP 线程(并确保 MPI 进行进程绑定,它为每个 MPI 任务提供至少两个内核)。
-
OpenMP @DmitriChubarov