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



如您所知,即使只有一个处理器和一个内核,mpi 也可以运行一堆进程。假设我有一个双核单处理器。如果我运行一个程序mpiexec.mpich -np 2 ./out我怎么能确定工作被分成两个内核?

确认

您是否在两个内核上运行的最简单方法可能是执行诸如紧 while 循环之类的操作,这将增加处理器使用率:

#include <mpi.h>
int main(int argc, char** argv)
{
    MPI_Init(&argc, &argv);
    while(1) {}
}

然后,您可以使用类似top的内容查看您的使用情况,以确保它是您所期望的。

如果您想对流程的运行位置进行细粒度控制,MPICH 可以选择让您这样做。您可以在维基页面上找到所有选项。有一些标志可以让你绑定到内核、硬件线程、套接字等。

最新更新