В подавляющем большинстве случаев для запуска программ удобнее использовать команду mpisubmit.bg. Программу mpirun следует вызывать только из командных файлов, написанных для команды llsubmit.
В этом разделе рассматриваются следующие вопросы:
Программа mpirun может принимать большое число параметров, которые описывают ее поведение как перед запуском задачи на вычислительных узлах, так и в процессе выполнения приложения. Эти параметры могут быть разделены на три группы:
Список параметров можно получить, выполнив команду mpirun -h, а их подробное описание приведено в официальной документации. Здесь мы рассмотрим лишь те из них, которые используются наиболее часто.
Параметры команде mpirun могут быть переданы либо через аргументы командной строки, либо через переменные окружения. Например, вызов mpirun с аргументом -mode DUAL будет эквивалентен указанию MPIRUN_MODE=DUAL в списке значений переменной environment. Таблица соответствия между аргументами командной строки и переменными окружения будет приведена ниже.
Аргументы командной строки mpirun делятся на следующие категории:
Аргумент | Описание |
---|---|
-args "program args" | Передает "program args" запускаемой на вычислительных узлах программе в качестве аргументов командной строки |
-env "ENVVAR=value" | Устанавливает переменную окружения для задачи, запущенной на вычислительных узлах; чтобы установить более одной переменной окружения, воспользуйтесь директивой несколько раз (-env "ENVVAR1=value1" -env "ENVVAR2=value2") или укажите все переменные в одной директиве (-env "ENVVAR1=value1 ENVVAR2=value2") |
-exp_env ENVVAR | Экспортирует переменную текущего окружения команды mpirun в среду задачи, запущенной на вычислительных узлах |
-env_all | Экспортирует все переменные текущего окружения команды mpirun в среду задачи, запущенной на вычислительных узлах |
-np <n> | Задает число MPI-процессов для задачи. Эквивалентные ключи: -nodes и -n. Можно указывать значение меньшее того, что прописано для ключевого слова bg_size командного файла. |
-mode <SMP|DUAL|VN> | Указывает режим, в котором будет запущена задача: SMP (1 MPI-процесс, 4 нити), DUAL (2 MPI-процесса по 2 нити) или VN (4 MPI-процесса по 1 нити) |
-exe <executable> | Полный путь к исполняемому файлу; должен указываться том виде, как он виден вычислительным и узлам ввода-вывода |
-cwd <path> | Полный путь, который будет использоваться в качестве текущей директории; должен указываться том виде, как он виден вычислительным и узлам ввода-вывода |
-mapfile <mapfile> | Специфицирует файл с альтернативной MPI-топологией; должен указываться том виде, как он виден вычислительным и узлам ввода-вывода |
В настоящий момент выделение блоков на системе Blue Gene/P, установленной на факультете ВМК МГУ, происходит автоматически, но в дальнейшем пользователю будет разрешено лишь указывать в командном файле один из предопределенных блоков, поэтому сооответствующие аргументы команды mpirun здесь не описаны.
Аргумент | Описание |
---|---|
-verbose [0-4] | Устанавливает уровень подробности вывода диагностических сообщений; по умолчанию используется нулевой уровень, означающий, что mpirun не выводит никаких информационных и диагностических сообщений, если только не произошло серьезной ошибки; все информационные и сообщения об ошибках направляются в stderr |
-label | Указывать источник каждой строчки вывода; он будет выведен в виде stdout[MPI_rank] или stderr[MPI_rank] |
Обратите внимание, что информационные сообщения, которые выводятся при использовании ключа -verbose, отвечают только аргументам программы mpirun и не учитывают параметры, указанные в командного файла планировщика LoadLeveler. Самые полные и актуальные данные доступны с помощью команды
$> llq -l <jobid>где jobid — это номер задачи, подробную информацию о который вы хотите получить.
Аргумент | Описание |
---|---|
-h | Отображает справочную информацию об аргументах командной строки |
-version | Отображает информацию о версии программы |
Альтернативный способ управления выполнением программы mpirun состоит в использовании переменных окружения. Большая часть параметров командной строки имеет эквиваленты среди переменных окружения. Значения аргументов командной строки имеют преимущество перед значениями переменных окружения. Соответствие между некоторыми аргументами командной строки и переменными окружения приведено в следующей таблице:
Аргумент | Переменная окружения |
---|---|
-nodes | MPIRUN_NODES MPIRUN_N MPIRUN_NP |
-mode | MPIRUN_MODE |
-exe | MPIRUN_EXE |
-cwd | MPIRUN_CWD MPIRUN_WDIR |
-env | MPIRUN_ENV |
-exp_env | MPIRUN_EXP_ENV |
-env_all | MPIRUN_EXP_ENV_ALL |
-mapfile | MPIRUN_MAPFILE |
-args | MPIRUN_ARGS |
-label | MPIRUN_LABEL |
-verbose | MPIRUN_VERBOSE |
Текст составлен на основе материала главы 11, «mpirun», 2-го издания книги «IBM System Blue Gene Solution: Blue Gene/P Application Development»