Ряд реализаций MPI-1 предоставляет команду запуска для программ MPI, которая имеет форму
mpirun <аргументы mpirun> <программа> <аргументы программы>
Отделение команды запуска программы от самой программы обеспечивает гибкость, особенно для сетевых и гетерогенных реализаций. Например, сценарий запуска не нужно выполнять на одной из машин, которые будут непосредственно выполнять программу MPI.
Наличие стандартного механизма запуска также расширяет мобильность
MPI программ на один шаг вперед, к командным строкам и сценариям,
которые управляют ими. Например, сценарий набора программ проверки
правильности, который выполняет сотни программ, может быть переносимым
сценарием, если он написан с использованием такого стандартного механизма
запуска. Чтобы не перепутать ``стандартную'' команду с существующей на
практике, которая не является стандартной и не переносимой среди реализаций,
вместо mpirun
MPI определил mpiexec
.
В то время как стандартизированный механизм запуска улучшает применимость
MPI, диапазон сред настолько разнообразен (например, не может даже быть
интерфейса командной строки), что MPI не может принять под мандат такой
механизм. Вместо этого, MPI определяет команду запуска mpiexec
и
рекомендует, но не требует, как совет разработчикам. Однако, если реализация
обеспечивает команду называемую mpiexec
, она должна иметь форму,
описанную ниже.
Она предложена так
mpiexec -n <numprocs> <программа>
будет по крайней мере один способ запустить <программу>
с
начальным MPI_COMM_WORLD
, чья группа содержит
<numprocs>
процессов. Другие аргументы mpiexec
могут
зависеть от реализации.
Это - совет разработчикам, а не требуемая часть MPI-2. Не предлагается,
что это единственный способ запустить MPI программу. Однако, если
реализация обеспечивает команду называемую mpiexec
, она должна иметь
форму, описанную здесь.
Совет разработчикам:
Разработчикам, если они обеспечивают специальную команду запуска для
программ MPI, советуют применить следующую форму. Синтаксис выбран
так, чтобы mpiexec
выглядела как версия командной строки
MPI_COMM_SPAWN
(См. Раздел 5.3.4).
Аналогично MPI_COMM_SPAWN
, мы имеем
mpiexec -n <maxprocs>
-soft < >
-host < >
-arch < >
-wdir < >
-path < >
-file < >
...
<командная строка>
для случая, где отдельной командной строки для прикладной программы и ее
аргументов будет достаточно. См. Раздел 5.3.4 для значений этих аргументов.
Для случая, соответствующего MPI_COMM_SPAWN_MULTIPLE
имеются
два возможных формата:
Форма A:
mpiexec { <above arguments> } : { ... } : { ... } : ... : { ... }
Как и в MPI_COMM_SPAWN
, все аргументы необязательные. (Даже
-n x
необязательный аргумент; значение по умолчанию зависит от
выполнения. Оно могло бы быть 1, оно могло бы быть принято от переменной
среды, или оно могло бы быть определено во время компиляции). Имена и
значения аргументов приняты от ключей в аргументе info
к
MPI_COMM_SPAWN
. Могут быть также другие, зависящие от реализации
аргументы.
Обратите внимание, что Форма A, хотя и удобно набирается, разделяет двоеточиями аргументы программы. Поэтому допускается дополнительная файловая форма:
Форма B:
mpiexec -configfile <имя_файла>
где строки <имя_файла>
имеют форму, отделенную двоеточиями в
Форме A. Строки, начинающиеся с ``#'', являются комментариями, и строки
могут быть продолжены, заканчивая неполную строку ``''.
Пример 4.1 Запуск 16 экземпляров myprog
на текущей или
заданной по умолчанию машине:
mpiexec -n 16 myprog
Пример 4.2 Запуск 10 процессов на машине, называемой
ferrari
:
mpiexec -n 10 -host ferrari myprog
Пример 4.3 Запуск трех копий одной и той же программы с различными аргументами командной строки:
mpiexec myprog infile1 : myprog infile2 : myprog infile3
Пример 4.4 Запускает программу ocean
на пяти Suns и
программу atmos
на 10 RS/6000:
mpiexec -n 5 -arch sun ocean : -n 10 -arch rs6000 atmos
Принимается, что реализация в этом случае имеет метод для выбора главных компьютеров соответствующего типа. Их ранги находятся в указанном порядке.
Пример 4.5 Запускает программу ocean
на пяти Suns и
программу atmos
на 10 RS/6000 (Форма B):
mpiexec -configfile myfile
Где myfile
содержит
-n 5 -arch sun ocean
-n 10 -arch rs6000 atmos
[]