Супер РЕДАКТИРОВАТЬ:
Добавление шага трансляции приведет к ncols
чтобы распечатать двумя процессами мастер-узел (из которого я могу проверить вывод). Но почему? Я имею в виду, что все переменные, которые транслируются, уже имеют значение в строке своего объявления !!! (не по теме образ).
У меня есть код, основанный на этом пример.
Я проверил, что конфигурация кластера в порядке, с этой простой программой, которая также напечатал IP машины, на которой он будет работать:
int main (int argc, char *argv[])
{
int rank, size;
MPI_Init (&argc, &argv); /* starts MPI */
MPI_Comm_rank (MPI_COMM_WORLD, &rank); /* get current process id */
MPI_Comm_size (MPI_COMM_WORLD, &size); /* get number of processes */
printf( "Hello world from process %d of %d\n", rank, size );
// removed code that printed IP address
MPI_Finalize();
return 0;
}
который напечатал IP-адрес каждой машины дважды.
EDIT_2
Если я печатаю (только) сетку, как в примере, я получаю для одного компьютера:
Processes grid pattern:
0 1
2 3
и на двоих:
Processes grid pattern:
Исполняемые файлы не были одинаковыми в обоих узлах!
Когда я настроил кластер, мне было очень трудно, поэтому, когда у меня возникли проблемы с монтированием, я просто пропустил его. Так что теперь изменения будут появляться только в одном узле. Код будет вести себя странно, если только часть (или весь) кода не будет одинаковым.