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);
    }
}

Это не работает по какой-то причине. Массивы печатаются все перепутано. Есть ли у вас понимание того, почему это не работает? Любые другие идеи, которые работают? Если возможно, я не хочу отправлять весь массив в мастер-процесс. Также я не хочу использовать предварительно скомпилированные функции.

Ответы на вопрос(4)

Ваш ответ на вопрос