Как только демоны запускаются, они соединяются в кольцо: "консольный" процесс
(mpirun, mpdtrace, mpdallexit, и т.д.) может соединиться с любым
mpd через именованный сокет Unix, установленный в /tmp локальным
mpd. Если это процесс mpirun, он требует, чтобы было запущено
определенное число процессов, начиная с машины, заданной -MPDLOC-, как
было указано выше. По умолчанию место размещения - следующий mpd в кольце
после того, который был запрошен с консоли. После этого происходят следующие
события.
mpd порождает требуемое количество процессов manager
(исполняемый файл называется mpdman и расположен в каталоге
mpich/mpid/mpd). Менеджеры порождаются последовательно всеми mpd в
кольце, делая полный круг, если необходимо.
Менеджеры самостоятельно объединяются в кольцо, и порождают
процессы приложения, называемые клиентами.
Консоль отсоединяется от mpd и присоединяется к первому менеджеру.
stdin от mpirun доставляется к клиенту менеджера 0.
Менеджеры перехватывают стандартный ввод-вывод от клиентов, и
доставляют им аргументы командной строки и переменные окружения, заданные в
команде mpirun. Сокеты, содержащие stdout и stderr,
формируют дерево с менеджером 0 в качестве корня.
С этого момента ситуация выглядит подобно показанной на рис. 1. Когда клиенту
необходимо соединиться с другим клиентом, они используют менеджеры, чтобы найти
подходящий процесс на машине-приемнике. Процесс mpirun может быть приостановлен
- в этом случае останавливаются и его клиенты, однако mpd и менеджеры
продолжают выполняться, чтобы они смогли разбудить клиентов после пробуждения
mpirun. Уничтожение процесса mpirun уничтожает и клиентов, и
менеджеров.
Одно и то же кольцо mpd может использоваться для запуска
множества задач с множества консолей в одно и то же время. При обычных условиях
необходимо, чтобы для каждого пользователя существовало отдельное кольцо
mpd. Для целей безопасности каждый пользователь должен иметь в своем домашнем
каталоге доступный для чтения только ему файл `.mpdpasswd', содержащий
пароль. Файл будет считываться при запуске mpd. Только mpd, знающие
этот пароль, могут войти в кольцо существующих mpd.
Новой является возможность конфигурировать систему mpd, чтобы демоны могли
загружаться как root. Чтобы сделать это после конфигурирования mpich
Вам нужно повторно переконфигурировать ее в каталоге mpid/mpd с опцией
enable-root и пересобрать. Тогда mpirun будет инсталлирован
как программа setuid. Несколько пользователей могут использовать одно и то
же множество mpd, которые были запущены root, несмотря на то, что их
mpirun, менеджеры и клиенты будут запущены от имени пользователя,
вызвавшего mpirun.
Figure:
Система mpd с консолью, менеджерами и клиентами