0
在mpi.h中,我試圖使用MPI_Barrier,但它不能正常工作。 下面是一個例子:MPI_Barrier無法正常工作
int main(int argc, char **argv)
{
MPI_Init(&argc,&argv);
int i,j,rank,np;
MPI_Comm_size(MPI_COMM_WORLD,&np);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
for(i=0;i<np;i++)
{
if(rank==i)
{
printf("\n(%d)\n",rank);
for(j=0;j<5;j++)
{
printf("%d\t",j);
if((j%10)==0)
printf("\n");
}
}
MPI_Barrier(MPI_COMM_WORLD);
}
MPI_Finalize();
return 0;
}
的輸出是:
(0)
0
(1)
0
(2)
0
(3)
0
1 2 3 4 1 2 3 4 1 2 3 4
1 2 3 4
(帶有4個處理器執行) 因此,所有的處理器同時開始打印值,即使是有障礙。 爲什麼?