我将 mpi 安装到 Windows 中,并且可以使用它的库。问题是,当我在 Windows 中编写时
mpiexec -n 4 proj.exe
进入命令提示符后,它不会进行正确的操作。 4个不同的进程分别使用整个代码文件。它们的行为不像仅在 MPI_Init 和 MPI_Finalize 行中工作的并行进程。我该如何解决这个问题?是不是不能在 Windows 下运行 MPI?
P.s:我正在使用 Dev c++
按照你所说的,MPI 运行正确 - 相反,你的假设是不正确的。在每个 MPI 实现(我已经使用过)中,整个程序从头到尾运行every过程。 MPI_Init 和 MPI_Finalize 函数需要为每个进程设置和拆除 MPI 结构,但它们不指定并行执行的开始和结束。并行部分的开始是main中的第一条指令,结束是最终的返回。
一个很好的“模板”程序,看起来像你想要的那样(也在如何通过 MPI 加速这个问题):
int main(int argc, char *argv[]) {
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
MPI_Comm_rank(MPI_COMM_WORLD,&myid);
if (myid == 0) { // Do the serial part on a single MPI thread
printf("Performing serial computation on cpu %d\n", myid);
PreParallelWork();
}
ParallelWork(); // Every MPI thread will run the parallel work
if (myid == 0) { // Do the final serial part on a single MPI thread
printf("Performing the final serial computation on cpu %d\n", myid);
PostParallelWork();
}
MPI_Finalize();
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)