如你所知,即使只有一个带有一个核心的处理器,mpi也可以运行一堆进程。让我们说我有一个双核单处理器。如果我使用mpiexec.mpich -np 2 ./out
运行程序,我怎么能确定工作是在两个核心之间拆分的?
答案 0 :(得分:3)
可能最简单的方法是确认你在两个内核上运行,这样做的事情就像是一个紧张的循环,这将导致处理器的使用率飙升:
#include <mpi.h>
int main(int argc, char** argv)
{
MPI_Init(&argc, &argv);
while(1) {}
}
然后,您可以使用top
之类的内容查看您的使用情况,以确保它符合您的预期。
如果您希望对进程的运行位置进行细粒度控制,MPICH可以选择让您这样做。您可以在wiki页面上找到所有选项。有标志可以绑定到核心,硬件线程,套接字等。