确保mpi在内核之间分离工作

时间:2015-02-02 19:52:19

标签: mpi multicore

如你所知,即使只有一个带有一个核心的处理器,mpi也可以运行一堆进程。让我们说我有一个双核单处理器。如果我使用mpiexec.mpich -np 2 ./out运行程序,我怎么能确定工作是在两个核心之间拆分的?

1 个答案:

答案 0 :(得分:3)

可能最简单的方法是确认你在两个内核上运行,这样做的事情就像是一个紧张的循环,这将导致处理器的使用率飙升:

#include <mpi.h>

int main(int argc, char** argv)
{
    MPI_Init(&argc, &argv);

    while(1) {}
}

然后,您可以使用top之类的内容查看您的使用情况,以确保它符合您的预期。

如果您希望对进程的运行位置进行细粒度控制,MPICH可以选择让您这样做。您可以在wiki页面上找到所有选项。有标志可以绑定到核心,硬件线程,套接字等。