Delphi - сбориник статей

       

Запуск MPI-программы.


Запуск MPI-программы осуществляется с помощью загрузчика приложения mpirun. Формат вызова таков: >mpirun [ключи mpirun] программа [ключи программы]

Вот некоторые из опций команды mpirun:



-np x
    запуск x процессов. Значение x может не совпадать с числом компьютеров в кластере. В этом случае на некоторых машинах запустится несколько процессов. То, как они будут распределены, mpirun решит сам (зависит от установок, сделанных программой MPIConfig.exe)
-localonly x
-np x -localonly
    запуск x процессов только на локальной машине
-machinefile filename
    использовать файл с именами машин
-hosts n host1 host2 ... hostn
-hosts n host1 m1 host2 m2 ... hostn mn
    запустить на n явно указанных машинах. Если при этом явно указать число процессов на каждой из машин, то опция -np становится необязательной
-map drive: \\host\share
    использовать временный диск
-dir drive:\my\working\directory
    запускать процессы в указанной директории
-env "var1=val1|var2=val2|var3=val3..."
    присвоить значения переменным окружения
-logon
    запросить имя пользователя и пароль
-pwdfile filename
    использовать указанный файл для считывания имени пользователя и пароля.
    Первая строка в файле должна содержать имя пользователя, а вторая — его пароль)
-nocolor
    подавить вывод от процессов различным цветом
-priority class[:level]
    установить класс приоритета процессов и, опционально, уровень приоритета.
    class = 0,1,2,3,4 = idle, below, normal, above, high
    level = 0,1,2,3,4,5 = idle, lowest, below, normal, above, highest
    по умолчанию используется -priority 1:3, то есть очень низкий приоритет.

Для организации параллельного вычисления на нескольких машинах следует

1. На каждом компьютере, входящем в кластер, завести пользователя с одним и тем же именем (например, MPIUSER) и паролем (я дал ему пароль "1"), с ограниченными привилегиями.

2. На главном компьютере (в моем случае это, разумеется, ILYA) создать сетевую папку (например, COMMON). Следует озаботиться, чтобы пользователь MPIUSER имел к ней полный доступ.

3. В той же папке создать файл, содержащий имя пользователя, от чьего имени будут запускаться процессы, а также его пароль. В моем случае содержимое этого файла должно быть таким: mpiuser 1Я назвал это файл lgn.

После всех этих действий запуск MPI программы test осуществить можно как >mpirun -pwdfile \\ILYA\COMMON\lgn -hosts 2 ILYA 1 EKATERINA 1 \\ILYA\COMMON\test.exe

Изменив соответствующие опции, можно запускать различное число процессов. Например >mpirun -pwdfile \\ILYA\COMMON\lgn -hosts 2 ILYA 3 EKATERINA 3 \\ILYA\COMMON\test.exe

На рисунке виден результат такого вызова. Вывод от различных процессов выделяется различным цветом, поскольку опция -nocolor отключена. Обратите внимание на то, что последовательность номер выводимой строки вовсе не совпадает с номером процесса. Этот порядок будет меняться от случая к случаю.

На этом рисунке запечатлен Диспетчер задач при запуске на компьютере EKATERINA четырех процессов. Установлен приоритет по умолчанию.



Содержание раздела