c – Windows中的Mpi使用情况

我在windows中安装了mpi,我可以使用它的库.问题是在我写的时候在windows中

mpiexec -n 4 proj.exe 

进入命令提示符它没有进行正确的操作. 4个不同的进程分别使用整个代码文件.它们的行为不像只在MPI_Init和MPI_Finalize行中工作的并行进程.我该如何解决这个问题?在Windows中使用MPI是不可能的.

P.s:我正在使用Dev c

解决方法:

MPI按照你所说的正确运行 – 而你的假设是不正确的.在每个MPI实现中(无论如何我都使用过),整个程序在每个进程中从头到尾运行. MPI_Init和MPI_Finalize函数是设置和拆除每个进程的MPI结构所必需的,但它们不指定并行执行的开始和结束.并行部分的开头是main中的第一条指令,结束是最终返回.

一个好的“模板”程序,它看起来像你想要的(也在How to speed up this problem by 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;  
}  
上一篇:MPI_Bcast c STL向量


下一篇:spring boot 配置访问其他模块包中的mapper和xml