Параллельное программирование: Учебное пособие, страница 84

Совсем необязательно, чтобы количество главных компьютеров было равно числу процессов, определенных для начала параллельных вычислений. Если количество главных компьютеров меньше, чем определено процессов, то mpiexec автоматически запустит на некоторых или на каждом из выбранных главных компьютерах требуемое число процессов. В момент выполнения вычислений на каждом главном компьютере отношение число процессов/число процессоров поддерживается на одном уровне. Это означает, что главные компьютеры с более высоким числом процессоров получат большее количество процессов на выполнение. В принципе, допустимо и можно определять одни и те же главные компьютеры многократно. Это обычно используется, когда необходимо назначить заданное число конкретных процессов за соответствующим главным компьютером.

4.11.5  Использование вставок (plug-ins)  

Чтобы поддерживать дистрибутивы различных устройств NT-MPICH, mpiexec использует один и тот же механизм "вставки", как это и поскольку это делает и RexecShell. То есть, средства для старта процессов из  командной строки и/или из среды непосредственно mpiexec заранее не созданы. Они создаются лишь отдельной DLL, загружаемой во время выполнения. Каждая вставка использует различный набор параметров, которые также определяются в командной строке mpiexec, однако в последствии будут проанализированы вставкой.

4.11.6  Преобразование Пути.

При синтаксическом анализе командной строки mpiexec пробует разложить весь путь по именам файлов согласно UNC формам, чтобы упростить их спецификацию. Например, если текущим рабочим каталогом является K:\mpi, где K: отображается в \\nt_server\global, то команда  mpiexec -wdir..myprog  идентичена ее полной форме:

mpiexec -wdir \\nt_server\global

\\nt_server\global\mpi\myprog

4.12  Обработка пультового ввода - вывода.

В начатом процессе под управлением mpiexec стандартные дескрипторы вывода (output/error) и входные дескрипторы ввода (stdin) переназначаются для выполнения ввода/вывода на главной машине, на которой запускалась mpiexec и первый процесс параллельной программы. Весь вывод, созданный в соответствии с программой, отображается на мониторе mpiexec. Все введенное с клавиатуры, будет передаваться только первому процессу с рангом 0 и отображаться в пусковом окнеmpiexec. Все прочие совместно выполняемые процессы не могут получать данные от системы стандартного ввода. Это означает, что развитая интерактивная прикладная программа, может взаимодействовать с пользователем только через процесс с рангом 0. Вводимые данные распределяются между другими процессами лишь посредством MPI-подпрограмм.

4.13  Параметры командной строки для вставок

В настоящее время дистрибутив NT-MPICH содержит активные вставки (plug-ins), уже упоминавшиеся выше, которые, естественно, тоже располагают собственными наборами параметров, помещаемые в командную строку:

Вставки ch_shmem и ch_ntshmem (для SMP), работающие вместе с устройством NT-MPICH, могут содержать в командной строке параметры, перечисленные в таблице 4.4:

Таблица 4.4. Параметры вставок для SMP

-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 дляработы с двумя процессами, необходимо использовать запись следующего вида: