C-MPI:了解MPI_Barrier

时间:2018-12-01 22:34:18

标签: c mpi

我写的时候,问题很简单

//Compile with: mpicc temp.c
//Run with: mpirun -n 4 ./a.out
#include <mpi.h>
#include <stdio.h>

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

  int nbr, rank;
  MPI_Comm_size(MPI_COMM_WORLD, &nbr);
  MPI_Comm_rank(MPI_COMM_WORLD, &rank);

  printf("%d before\n",rank);
  MPI_Barrier(MPI_COMM_WORLD);
  printf("%d after\n",rank);

  MPI_Finalize();
}

通过4个过程,我得到:

3 before
3 after
2 before
2 after
1 before
1 after
0 before
0 after

为什么不是所有的“之前”然后是所有的“之后”?我真的需要那种行为。谢谢您的帮助!

0 个答案:

没有答案