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

4.11  Старт прикладных программ NT-MPICH

Прикладная параллельная программа представляется для NT-MPICH множеством процессов, которые должны выполняться на одном или большем количестве процессорных узлов. Проблема запуска такой прикладной программы состоит в том, чтобы запустить процессы на различных узлах с правильными параметрами. Для этого важно выполнить следующую общую настройку среды:

·  на всех процессорах сделать так, чтобы переменная системного окружения PATH включала путь ко всем DLLs NT-MPICH, учитывая место их расположения – в локальном или общем каталоге (последняя опция делает модификации проще);

·  в системный библиотечный каталог каждого узла нужно скопировать DLLs NT-MPICH;

·  копировать DLLs NT-MPICH необходимо в тот же самый каталог, где расположена выполняемая программа.

Чтобы запустить прикладные программы MPI инструментальные средства RexecShell и mpiexec используют активные вставки (plugins), перечисленные выше. Так как RexecShell и mpiexec ничего не знают о запускаемых прикладных программах, то они полагаются на обоснованность независимых DLLs. В результате, ответственность за создание правильных параметров и параметров настройки среды для различных типов прикладных программ полностью возлагается на динамически подключаемые библиотеки. Следовательно, чтобы создать правильную среду запуска для прикладной программы, необходимо выбрать соответствующую вставку.

4.11.1  Запуск с  RexecShell

Графический интерфейс RexecShell позволяет достаточно успешно осуществить простой запуск параллельной прикладной программы и проконтролировать ее выполнение. Последовательность шагов по запуску может быть такой:

·  открыть диалоговый выбор конфигурации RexecShell;

·  в раскрывшемся списке "ActivePlug-in" выбрать активную вставку, соответствующую устройству, которое необходимо использовать;

·  выбрать нужное для выполнения программы количество главных компьютеров из выделенного темным цветом списка компьютеров, которые подключены к службе администратора кластера; не обслуживаемые администратором кластера главные машины помечены красным цветом;

·  выполнить конфигурацию выбранной активной вставки (plug-in);

·  если есть опасение, что другой пользователь может выполнять свои процессы через RexecShell или mpiexec, то лучше установить блокировку главных компьютеров;

·  на вкладке считывания ввести верительную информацию для отдаленных узлов, которая сохраняется и передается, используя механизмы шифрования Windows 2000;

·  закрыть диалог выбора конфигурации, нажать на кнопку пуска или выбрать соответствующий пункт меню. При этом для каждого процесса откроется окно для пультового вывода процесса (stdout и stderr), а параллельная прикладная программа должна запуститься.

4.11.2  Запуск с mpiexec

В отличие от максимально регламентированного запуска прикладной программы с помощьюRexecShell, предусмотрен и запуск с использованием инструмента командной строки, который реализуется при выполнении mpiexec.exe. Общий синтаксис строки обращения кmpiexec выглядит так:

mpiexec [options] [plug-in options] [ — ]

program <parameters>

Структура записи такова, что после удаления всех параметров, объявленных отдельно (options) и подстановкой (plug-inoptions), в mpiexec сохраняется единственный параметр – название программы, который и обеспечит начало. Параметры могут помещаться в любое место в пределах командной строки, однако необходимо следить за тем, чтобы после удаления этих параметров командная строка принимала следующий вид:

mpiexecprogram <parameters>

Чтобы не возникало проблем с передачей параметров программам, подобным mpiexec's (или plug-in's), можно поместить перед выполняемым названием ‘--’ (две черточки). Для mpiexec это будет признаком для игнорирования поиска каких-либо параметров после этих черточек. Описание параметров для mpiexec приведено в таблице 4.3.

Таблица 4.3. Параметры программы mpiexec