使用mpirun运行程序,如何避免所有代码都被并行?

即使是在代码中不加入 MPI_Init 字段,当 mpirun -np 大于 1 的时候,main 中的所有代码都会被多个线程执行。怎么避免这种情况?

详细:

int main(int argv, char *argc[]){
    //serial section begin
     ...
    //serial section end
    
    //call an parallel method
    para(argv, argc);
}

int para(int argv, char *argc[]){
    //parallel section start
    MPI_Init(&argv, &argc);
    ...
    MPI_Finalize();
    //parallel section end
}
阅读 8.2k
2 个回答
新手上路,请多包涵

the same question

MPI_Comm_rank(MPI_COMM_WORLD,&myid);

通过进程号myid行任务划分

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进