Совсем необязательно, чтобы количество главных компьютеров было равно числу процессов, определенных для начала параллельных вычислений. Если количество главных компьютеров меньше, чем определено процессов, то mpiexec автоматически запустит на некоторых или на каждом из выбранных главных компьютерах требуемое число процессов. В момент выполнения вычислений на каждом главном компьютере отношение число процессов/число процессоров поддерживается на одном уровне. Это означает, что главные компьютеры с более высоким числом процессоров получат большее количество процессов на выполнение. В принципе, допустимо и можно определять одни и те же главные компьютеры многократно. Это обычно используется, когда необходимо назначить заданное число конкретных процессов за соответствующим главным компьютером.
Чтобы поддерживать дистрибутивы различных устройств NT-MPICH, mpiexec использует один и тот же механизм "вставки", как это и поскольку это делает и RexecShell. То есть, средства для старта процессов из командной строки и/или из среды непосредственно mpiexec заранее не созданы. Они создаются лишь отдельной DLL, загружаемой во время выполнения. Каждая вставка использует различный набор параметров, которые также определяются в командной строке mpiexec, однако в последствии будут проанализированы вставкой.
При синтаксическом анализе командной строки mpiexec пробует разложить весь путь по именам файлов согласно UNC формам, чтобы упростить их спецификацию. Например, если текущим рабочим каталогом является K:\mpi, где K: отображается в \\nt_server\global, то команда mpiexec -wdir..myprog идентичена ее полной форме:
mpiexec -wdir \\nt_server\global
\\nt_server\global\mpi\myprog
В начатом процессе под управлением mpiexec стандартные дескрипторы вывода (output/error) и входные дескрипторы ввода (stdin) переназначаются для выполнения ввода/вывода на главной машине, на которой запускалась mpiexec и первый процесс параллельной программы. Весь вывод, созданный в соответствии с программой, отображается на мониторе mpiexec. Все введенное с клавиатуры, будет передаваться только первому процессу с рангом 0 и отображаться в пусковом окнеmpiexec. Все прочие совместно выполняемые процессы не могут получать данные от системы стандартного ввода. Это означает, что развитая интерактивная прикладная программа, может взаимодействовать с пользователем только через процесс с рангом 0. Вводимые данные распределяются между другими процессами лишь посредством MPI-подпрограмм.
В настоящее время дистрибутив NT-MPICH содержит активные вставки (plug-ins), уже упоминавшиеся выше, которые, естественно, тоже располагают собственными наборами параметров, помещаемые в командную строку:
Вставки ch_shmem и ch_ntshmem (для SMP), работающие вместе с устройством NT-MPICH, могут содержать в командной строке параметры, перечисленные в таблице 4.4:
-alog |
Использовать для регистрации формат ALOG. По этому параметру устанавливается MPE_LOG_FORMAT=ALOG |
-clog |
Использовать для регистрации формат CLOG. Устанавливает системную переменную MPE_LOG_FORMAT=CLOG. |
-displayhost |
Установить системную переменную DISPLAY=host |
-mpe |
Запустить внутренний mpe-сервер и установить соответственно переменную DISPLAY. |
-num n |
Запустить n процессов. |
-slog |
Использовать для регистрации формат SLOG (значение по умолчанию). Устанавливает системную переменную MPE_LOG_FORMAT=SLOG. |
С этой вставкой связана проблема начального запуска: устройство ch_ntshmem начинает все процессы самостоятельно, а mpiexec должен запустить только один процесс. Поэтому для mpiexec вместо ключа -n необходимо использовать опцию -num устройства ch_shmem. Например, чтобы запустить программу mandel.exe и устройство ch_ntshmem дляработы с двумя процессами, необходимо использовать запись следующего вида:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.