next up previous contents
Next: Настройка производительности P4 Up: Кластеры рабочих станций и Previous: Гетерогенные сети и устройство   Contents

Файл procgroup для P4

Для большего контроля над тем, как запускается задача, нам нужно увидеть, как mpirun запускает параллельную программу на кластере рабочих станций. Каждый раз при запуске mpirun он создает и использует новый файл имен машин только для этого запуска, используя в качестве ввода файл machines. (Новый файл называется PIyyyy, где yyyy - идентификатор процесса). Если Вы определяете -keep_pg для вызова mpirun, Вы можете использовать эту информацию, чтобы видеть, где mpirun запустил несколько Ваших последних задач. Вы можете создать этот файл самостоятельно и определить его в качестве аргумента mpirun. Чтобы сделать это для ch_p4, используйте
mpirun -p4pg pgfile myprog
где pgfile - имя файла. Формат файла определен ниже.

Это необходимо, если Вы хотите жестко контролировать машины, на которых Вы работаете, или mpirun не может создать файл автоматически. Это происходит, если

Формат файла procgroup для ch_p4 - это множество строк вида
<hostname>    <#procs>    <progname>    <login>
Примером такого файла, где команда будет запущена с машины sun1, может быть sun1        0    /users/jones/myprog
sun2 1 /users/jones/myprog
sun3 1 /users/jones/myprog
hp1 1 /home/mbj/myprog    mbj
Указанный выше файл определяет четыре процесса, по одному на каждой из трех sun и один на другой станции, где имя профиля пользователя отличается. Отметьте 0 в первой строке. Он здесь, чтобы указать, что на машине sun1 не должен запускаться никакой другой процесс, кроме того, который запускается командой пользователя. Вы можете пожелать запустить все процессы на Вашей собственной машине в качестве теста. Вы можете сделать это, повторив ее имя в файле sun1        0    /users/jones/myprog
sun1 1 /users/jones/myprog
sun1 1 /users/jones/myprog
Эта команда запустит три процесса на sun1, взаимодействующих через сокеты. Для запуска на многопроцессорной системе с разделяемой памятью 10 процессов, вы можете использовать файл вида
sgimp        9     /u/me/prog
Заметьте, что это пример для 10 процессов, один из которых непосредственно запускается пользователем, а другие девять определены в этом файле. Он требует, чтобы mpich был сконфигурирован с опцией -comm=shared; для дополнительной информации см. руководство по инсталляции.

Если Вы находитесь на машине gyrfalcon и хотите запустить задачу с одним процессом на gyrfalcon и тремя процессами на alaska, причем процессы на alaska взаимодействуют через разделяемую память, Вы можете использовать local        0    /home/jbg/main
alaska 3 /afs/u/graphics
Не существует возможности передать различным процессам MPI различные аргументы командной строки.


Alex Otwagin 2002-12-16