Работа на нескольких ядрах с использованием MPI - PullRequest
4 голосов
/ 19 мая 2011

Я использую настоящую команду для отправки заданий MPI: mpirun -np no.of имя файла процессоров

Насколько я понимаю, приведенная выше команда позволяет отправлять 4 независимых процессора, которые обмениваются данными через MPI. Однако при нашей настройке каждый процессор имеет 4 ядра, которые не используются , У меня были следующие вопросы:

  1. Можно ли отправить задание для запуска на нескольких ядрах на одном узле или на нескольких узлах из командной строки запуска MPI? Если да, то как?

  2. Требует ли вышеуказанное каких-либо специальных комментариев / настроек в коде? Из какой-то литературы я понимаю, что время обмена данными между ядрами может отличаться от времени между процессорами, поэтому требуется некоторое размышление о том, как распределяется проблема ... но для этой проблемы? Что еще нужно оценить?

  3. Наконец, существует ли ограничение на объем передаваемых данных? Существует ли ограничение на количество данных, которые шина может отправлять / получать? Есть ли ограничение на кеш?

Спасибо!

1 Ответ

2 голосов
/ 19 мая 2011

Итак, 1 - это вопрос о запуске процессов, а 2 + 3 - это вопросы, в основном, о настройке производительности. Настройка производительности может потребовать существенной работы над базовым кодом, но вам не нужно потребовать , чтобы изменить строку кода для выполнения всего этого.

Из вашего первого вопроса я понимаю, что вы хотите изменить распределение запущенных MPI-процессов. Делать это обязательно за пределами стандарта, потому что это зависит от ОС и платформы; поэтому каждая реализация MPI будет иметь разные способы сделать это. Последние версии OpenMPI и MPICH2 позволяют указать, где заканчиваются процессоры, поэтому вы можете указать два процессора на сокет и т. Д.

Вам не нужно изменять код, чтобы это работало, но существуют проблемы с производительностью в зависимости от основных дистрибутивов. В общем, об этом сложно сказать, потому что это зависит от ваших шаблонов связи, но да, чем «ближе» процессоры, тем быстрее будет связь в целом.

Нет определенного ограничения на общий объем данных, которые передаются между задачами MPI туда и обратно, но да, существуют ограничения пропускной способности (и существуют ограничения для каждого сообщения). Размер кэша такой, какой он есть.

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