我可以对 Ibarrier 进行 MPI_Test

计算科学 mpi
2021-11-27 19:55:37

在这段代码中,所有进程都发布了一个屏障,为了更好的测量而休眠一段时间,然后首先TestWait屏障。Test说不,等待成功测试应该像一个非阻塞等待,所以它应该成功。我错过了什么?

  printf("[%d] posting barrier, then sleeping\n",procid);
  MPI_Request final_barrier;
  MPI_Ibarrier(comm,&final_barrier);
  sleep(2);

  int all_done_flag=0;
  MPI_Test(&final_barrier,&all_done_flag,MPI_STATUS_IGNORE);
  printf("[%d] all done: %d\n",procid,all_done_flag);

  MPI_Wait(&final_barrier,MPI_STATUS_IGNORE);
  printf("[%d] concluded\n",procid);
0个回答
没有发现任何回复~