OpenMPI: все узлы работают как узел 0

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


person Community    schedule 07.12.2008    source источник
comment
Возможно, вы могли бы показать, какие команды/скрипты вы используете для настройки процессов?   -  person Svante    schedule 07.12.2008


Ответы (2)


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

person Community    schedule 11.12.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);

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

person schnaader    schedule 08.12.2008