Problemas com o OpenMPI MPI_Barrier
Estou tendo alguns problemas de sincronização usando a implementação OpenMPI do MPI_Barrier:
int rank;
int nprocs;
int rc = MPI_Init(&argc, &argv);
if(rc != MPI_SUCCESS) {
fprintf(stderr, "Unable to set up MPI");
MPI_Abort(MPI_COMM_WORLD, rc);
}
MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
printf("P%d\n", rank);
fflush(stdout);
MPI_Barrier(MPI_COMM_WORLD);
printf("P%d again\n", rank);
MPI_Finalize();
para mpirun -n 2 ./a.out
a saída deve ser: P0 P1 ...
saída éas vezes: P0 P0 novamente P1 P1 novamente
o que está acontecendo?