【发布时间】:2012-05-29 02:43:52
【问题描述】:
我有一个 MPI 应用程序,它当前有一个进程(称为 A),这会导致严重的可伸缩性问题。目前,所有其他进程都坐在MPI_Recv 中等待那个进程向他们发送信息。
由于我想现在尽可能地加快速度,因此我正在考虑使用 OpenMP 并行化进程 A。这实用吗?
由于与A 共享节点的其他进程位于MPI_Recv 中,我可以利用该节点的所有资源来处理进程A,还是MPI_Recv 会阻止这种情况?
使用 OpenMP 的另一个好处是内存可以共享,因为进程 A 占用大量资源。
顺便说一句,如果我的处理器在 MPI_Send 而不是 MPI_Recv 中等待,它会改变什么吗?
【问题讨论】:
-
你想要这样的OpenMPI and OpenMP Example吗?
-
@baccus -- 类似的东西,但是,比如说(例如)我有一台机器有 10 个节点,每个节点有 4 个核心 -- 在 9 个节点上,我想运行 4 个 mpi 进程, 10 号,我只想运行一个 MPI 进程(通过 openmp 产生更多)