MPI - Печать на заказ
Я пытаюсь написать функцию на C, где каждый процессор печатает свои данные. Вот что у меня есть:
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);
}
}
Это не работает по какой-то причине. Массивы печатаются все перепутано. Есть ли у вас понимание того, почему это не работает? Любые другие идеи, которые работают? Если возможно, я не хочу отправлять весь массив в мастер-процесс. Также я не хочу использовать предварительно скомпилированные функции.