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

确保mpi在内核之间分配工作,mpi,multicore,Mpi,Multicore,正如您所知,即使只有一个处理器和一个内核,mpi也可以运行一系列进程。假设我有一个双核单处理器。如果我使用mpiexec.mpich-np 2./out运行一个程序,我如何才能确保工作在两个内核之间分配?确认在两个内核上运行的最简单的方法可能是执行类似于紧密while循环的操作,这将增加处理器的使用率: #include <mpi.h> int main(int argc, char** argv) { MPI_Init(&argc, &argv);

正如您所知,即使只有一个处理器和一个内核,mpi也可以运行一系列进程。假设我有一个双核单处理器。如果我使用
mpiexec.mpich-np 2./out运行一个程序,我如何才能确保工作在两个内核之间分配?

确认在两个内核上运行的最简单的方法可能是执行类似于紧密while循环的操作,这将增加处理器的使用率:

#include <mpi.h>

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

    while(1) {}
}
#包括
int main(int argc,字符**argv)
{
MPI_Init(&argc,&argv);
而(1){}
}
然后,您可以使用
top
之类的工具查看您的使用情况,以确保它符合您的期望


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

当我使用top时,我应该期待什么?您有多个进程,其百分比为100%。