OpenMPI: все узлы работают как узел 0 - PullRequest
7 голосов
/ 07 декабря 2008

У меня есть программа на С ++, которая использует библиотеку openMPI для передачи сообщений между различными процессорами. Это параллельная программа, которая использует генетический алгоритм, чтобы получить хорошее решение проблемы коммивояжера. Я пытаюсь настроить среду MPI на своих двух двухпроцессорных компьютерах у себя дома, чтобы я мог ее запустить. Когда я впервые создал эту программу год назад, я смог нормально запустить ее на кластере, который я не настраивал. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что всякий раз, когда я запускаю его, все процессы говорят, что они имеют ранг 0. Если у меня 3 узла, а не 1, 2 и 3, то все они 0. Если кто-нибудь знает, что происходит, я был бы признателен за помощь. Спасибо.

Ответы [ 2 ]

3 голосов
/ 11 декабря 2008

Я выяснил, в чем проблема. У меня было установлено два пакета, оба использовали команду mpirun. Я считаю, что это были и пакеты openmpi, и mpich. Я удалил openmpi, и это сработало.

1 голос
/ 08 декабря 2008

Возможно, ваша инициализация неверна или у вас есть какая-то ошибка при проверке ранга. Это должен быть правильный способ сделать это:

MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
printf("I am process %d of %d.\n", rank, size);

Но я предполагаю, что вы все сделали правильно, поэтому я согласен с Арлекином, поскольку показанные вами команды / сценарии были бы полезны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...