Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KS_LK_AllInOne.docx
Скачиваний:
134
Добавлен:
23.11.2019
Размер:
28.78 Mб
Скачать

3.1.3 Архитектура параллельной виртуальной машины

Система PVM состоит из двух основных компонентов. Первым является демон pvmd3 (или pvmd), который запускается на всех компьютерах, входя­щих в состав виртуальной машины. Демонами в ОС UNIX называют про­цессы, управляющие различными службами, в данном случае, выполнением PVM-программ. Эти процессы работают без связи с терминалом, находясь в состоянии ожидания до тех пор, пока какой-нибудь процесс не обратится к со­ответствующей службе операционной системы. Особенностью демона pvmd3 является то, что устанавливать и запускать его на компьютере могут обычные пользователи, работающие без привилегий суперпользователя, что необычно для ОС Linux, где демоны обычно являются системными процессами, подчиняющимися только суперпользователю. Если пользователь собирается запустить парал­лельную PVM-программу, он должен сначала запустить демоны на тех узлах, на которых будет выполняться параллельное приложение. В этом и за­ключается создание виртуальной машины.

Различные пользователи могут создавать собственные виртуальные машины, которые могут включать в свой состав одинаковые хосты, т. е. перекрывать­ся, но являются абсолютно "прозрачными" друг для друга. "Прозрачность" заключается в том, что процессы, выполняющиеся на разных виртуальных машинах, не могут взаимодействовать между собой, а их взаимное влияние опосредовано конкуренцией за одни и те же ресурсы – за процес­сорное время или память. Запуск PVM-программы может выполняться из командной строки, как это делается обычно в ОС UNIX или из PVM-консоли. Специальный загрузчик приложений, как в MPI, не требуется. Вторым компонентом PVM является набор библиотек, реализующих уже упоминавшиеся операции. PVM под­держи­вает программирование на языках C/C++ и FORTRAN – основных языках программирования параллельных вычислений. В параллельных программах, напи­санных на языках С и C++, используются функции из библиотеки libpvm3. В программах на языке FORTRAN подпрограммы являются процедурами, но они фактически обеспечивают интерфейс с функциями С, поэтому при сборке программ, написанных на языке FORTRAN, необходимо подклю­чать не только библиотеку libfpvm3,но и libpvm3. Имена функций С начинаются с префикса pvm_, а имена процедур FORTRAN – с PVMF. В отличие от MPI, значением функции С в PVM не обязательно яв­ляется код завершения. Модель программирования PVM включает как SPMD, так и MPMD-модели, причем обе они равноправны.

3.2 Настройка и запуск параллельной виртуальной машины

Для установки PVM достаточно прав обычного пользователя. После установки необходимо правильно настроить систему, иначе она окажется неработоспособной. Прежде всего, пользователь должен устано­вить значения двух переменных окружения PVM_ROOT и PVM_ARCH. Первая – путь к каталогу, содержащему PVM, а значение второй – наименование архитектуры этого хоста. В таблице 3.1 приведены некоторые из допустимых значений перемен­ной PVM_ARCH.

Таблица 3.1 – Допустимые значения переменной PVM_ARCH

Значение переменной

Вычислительная система

ALPHA

DEC Alpha

BSD386

Персональный компьютер под управлением ОС BSD UNIX

CM 2

СМ2 фирмы Thinking Machines

СМ5

CM5 фирмы Thinking Machines

CNVX и CNVXN

Convex, серия С

CRAY

CRAY-90, YMP, T3D

CRAY2

CRAY-2

CRAYSMP

CRAY S-MP

НР300

HP-9000, модель 300

НРРА

HP-9000 PA-RISC

I860

Intel iPSC/860

LINUX

Персональный компьютер под управлением ОС LINUX

NEXT

NeXT

PGON

Intel Paragon

РМАХ

DECstation 3100, 5100

RS6K

IBM/RS6000

RT

IBM RT

SGI

IRIS IRIX 4.x фирмы Silicon Graphics

SGI5

IRIS IRIX 5.x фирмы Silicon Graphics

SGIMP

Мультипроцессор SGI

SUN3

Sun3

SUN4

Sun 4, SPARCstation

SUN4SOL2

Sun 4, SPARCstation Solaris 2.x

SUNMP

Мультипроцессор SPARC

UVAX

DEC Micro VAX

Для присвоения значений переменным окружения в ОС UNIX используют­ся команды, которые могут немного различаться для разных интерпретато­ров команд. В оболочке bash, для случая, когда PVM установлена в каталоге /usr/local, это делается следующими командами:

#export PVM_ROOT=/usr/local/pvm3

#export PVM_ARCH=LINUX

Для того чтобы не выполнять эти команды каждый раз в начале сеанса, следует включить их, а также другие команды инициализации в файл, который считывается в начале сеанса (.bashrc для интерпретатора bash и .cshrc для интерпретатора csh).

Для инициализации параллельной виртуальной машині необходимо запустить демон pvmd и передать ему файл, находящийся в каталоге пользователя и содержащий имена или IP-адреса узлов кластера, которые будут использоваться в расчетах и на которых будет запущен процесс-демон pvmd. Содержание этого файла аналогично файлу machines.LINUX, содержание которого было приве­де­но при описанип MPI ранее. Пример команд для запуска демона pvm и передачи ему файла pvm.conf приведен ниже:

$ pvm home/knoppix/pvm.conf

После выполнения данной команды появляется pvm-консоль в которой можно работать с pvm-машиной: добавлять или удалять узлы, запускать программы и производить некоторые другие действия.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]