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

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

Возможно, вы могли бы показать, какие команды / сценарии вы используете для настройки процессов?

Svante 07.12.2008 15:01
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
1
729
2

Ответы 2

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

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, показ используемых вами команд / сценариев будет полезным.

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

Другие вопросы по теме