next up previous contents
Next: Устаревшие возможности Up: Использование mpirun для создания Previous: Использование mpirun для создания   Contents

Использование mpirun для поддержки Вашего собственного скрипта RSL

Вы можете использовать mpirun, создав Ваш собственный скрипт RSL, если у Вас есть множество машин, которые не имеют доступа или не выполняют один и тот же исполняемый файл (т.е., машин, которые не совместимы на уровне двоичных файлов или не разделяют файловую систему). В этой ситуации, мы должны использовать нечто, называемое запросом на языке определения ресурсов (RSL) для определения имени исполняемого файла для каждой машины. Эта техника очень гибкая, но гораздо сложнее; сейчас идет работа над упрощением способа, которым организованы эти средства.

Простейший способ научиться писать свои собственные запросы RSL - изучить запросы, созданные для Вас mpirun. Рассмотрим пример, в котором мы хотим запустить приложение на кластере рабочих станций. Вспомним, что наш файл machines выглядит так:

``m1.utech.edu'' 10
``m2.utech.edu'' 5
Чтобы увидеть запрос RSL, сгенерированный в этом случае, без запуска программы, мы набираем следующую команду mpirun:
% mpirun -dumprsl -np 12 myapp 123 456
что приведет к выводу: +        
( &(resourceManagerContact=``m1.utech.edu'')
(количество=10)
(тип задачи=mpi)
(метка=``subjob 0'')
(среда=(GLOBUS_DUROC_SUBJOB_INDEX 0))
(аргументы=`` 123 456'')
(каталог=/homes/karonis/MPI/mpich.yukon/mpich/lib/IRIX64/globus)
(исполняемый файл=/homes/karonis/MPI/mpich.yukon/mpich/lib/IRIX64/globus/myapp)
)
( &(resourceManagerContact=``m2.utech.edu'')
(количество=2)
(тип задачи=mpi)
(метка=``subjob 1'')
(среда= (GLOBUS_DUROC_SUBJOB_INDEX 1))
(аргументы=`` 123 456'')
(каталог=/homes/karonis/MPI/mpich.yukon/mpich/lib/IRIX64/globus)
(исполняемый файл=/homes/karonis/MPI/mpich.yukon/mpich/lib/IRIX64/globus/myapp)
)
Отметьте, что (тип задачи=mpi) может встретиться только в тех подзадачах, машины которых имеют фирменные реализации MPI. Дополнительные переменные окружения могут быть добавлены так, как в примере ниже: +                    
( &(resourceManagerContact=``m1.utech.edu'')
(количество=10)
(тип задачи=mpi)
(метка=``subjob 0'')
(среда=(GLOBUS_DUROC_SUBJOB_INDEX 0))
(MY_ENV 246)
(аргументы=`` 123 456'')
(каталог=/homes/karonis/MPI/mpich.yukon/mpich/lib/IRIX64/globus)
(исполняемый файл=/homes/karonis/MPI/mpich.yukon/mpich/lib/IRIX64/globus/myapp)
)
( &(resourceManagerContact=``m2.utech.edu'')
(количество=2)
(тип задачи=mpi)
(метка=``subjob 1'')
(среда= (GLOBUS_DUROC_SUBJOB_INDEX 1))
(аргументы=`` 123 456'')
(каталог=/homes/karonis/MPI/mpich.yukon/mpich/lib/IRIX64/globus)
(исполняемый файл=/homes/karonis/MPI/mpich.yukon/mpich/lib/IRIX64/globus/myapp)
)
После редактирования Вашего собственного файла RSL Вы можете передать его непосредственно mpirun следующим образом:
% mpirun -globusrsl <ваш файл запроса RSL>
Отметьте, что при поддержке Вашего собственного файла RSL он должен быть единственным аргументом, определяемым для mpirun.

RSL является гибким языком, способным выполнять гораздо больше, чем представлено здесь. Например, он может использоваться для установки исполняемых файлов и переменных окружения на удаленных компьютерах перед началом выполнения. Полное описание языка можно найти на
http://www.globus.org.




Благодарности

Выполнению работы, описанной в этом документе, способствовало много людей. Мы также благодарны тем, кто помогал в реализации mpich, особенно Patrick Bridges и Edward Karrels. Особенная благодарность Nathan Doss и Anthony Skjellum за ценную помощь в реализации и разработке mpich. Debbie Swider, работавшая в группе по mpich несколько лет помогала в поддержке и улучшении реализации mpich. David Ashton, разрабатывал версию mpich для Windows NT, поддержаваемую грантом корпорации Microsoft. Устройство globus2 разработано Nick Karonis из Northern Illinois University и Brian Toonen из Argonne National Laboratory. Привязки к C++ были выполнены Andrew Lumsdaine и Jeff Squyres из Notre Dame. Параллельная система ввода-вывода ROMIO MPI-2 была разработана Rajeev Thakur из Argonne.


next up previous contents
Next: Устаревшие возможности Up: Использование mpirun для создания Previous: Использование mpirun для создания   Contents
Alex Otwagin 2002-12-16