MPI - Drukowanie w zamówieniu
Próbuję napisać funkcję w C, gdzie każdy procesor drukuje własne dane. Oto co mam:
void print_mesh(int p,int myid,int** U0,int X,int Y){
int i,m,n;
for(i=0;i<p;i++){
if(myid==i){
printf("myid=%d\n",myid);
for(n=0;n<X;n++){
for(m=0;m<Y;m++){
printf("%d ",U0[n][m]);
}
printf("\n");
}
}
else MPI_Barrier(MPI_COMM_WORLD);
}
}
Nie działa z jakiegoś powodu. Tablice są drukowane w całości pomieszane. Czy masz jakieś pojęcie o tym, dlaczego to nie działa? Jakieś inne pomysły, które działają? Jeśli to możliwe, nie chcę wysyłać całej tablicy w procesie głównym. Nie chcę też używać funkcji prekompilowanych.