小编Ita*_*alo的帖子

OpenMP和MPI混合程序

我有一台8处理器的机器.我想在我的代码上使用OpenMP和MPI替代,如下所示:

OpenMP阶段:

  • 排名1-7等待MPI_Barrier
  • rank 0使用OpenMP的所有8个处理器

MPI阶段:

  • 等级0达到障碍,所有等级各使用一个处理器

到目前为止,我已经完成了:

  • 设置I_MPI_WAIT_MODE 1,以便1-7级在屏障上不使用CPU.
  • 在等级0上设置omp_set_num_threads(8),以便它启动8个OpenMP线程.

这一切都奏效了.排名0确实启动了8个线程,但所有线程都限制在一个处理器上.在OpenMP阶段,我从一个处理器上运行的0级中获得8个线程,而所有其他处理器都处于空闲状态.

如何告诉MPI允许0级使用其他处理器?我正在使用英特尔MPI,但如果需要,可以切换到OpenMPI或MPICH.

mpi openmp

9
推荐指数
2
解决办法
2147
查看次数

标签 统计

mpi ×1

openmp ×1