В этом разделе описывается, как установить программный пакет ПВМ,
как сконфигурировать простую виртуальную машину и как скомпилировать
и выполнить программы примеров, поддерживаемые ПВМ. В первой части
раздела описываются непосредственно использование ПВМ и наиболее часто
встречающиеся ошибки и трудности в процессе установки и эксплуатации.
В следующем разделе описываются некоторые из расширенных опций, позволяющие
читателю настроить среду ПВМ по своему усмотрению.
Как получить программное обеспечение ПВМ
Последняя версия исходных текстов ПВМ и документация всегда доступны
посредством netlib. netlib - это сервисная служба
по распространению программного обеспечения, установленная в сети
Internet, в которой содержится большой набор программного обеспечения
для компьютеров. Программное обеспечение может быть получено от netlib
с помощью ftp, www, xnetlib или e-mail клиентов.
Файлы ПВМ могут быть загружены из анонимного ftp-сервера
netlib2.cs.utk.edu. Загляните в каталог pvm3. Файл
index содержит описание файлов и подкаталогов в этом каталоге.
Используя браузеры, файлы ПВМ можно забрать по адресу
http://www.netlib.org/pvm3/index_html.
xnetlib - это интерфейс для оболочки X-Window, который позволяет
пользователям просматривать содержимое службы netlib или
искать с ее помощью доступное наработанное программное обеспечение
и автоматически пересылать избранное на пользовательский компьютер.
Для получения самой xnetlib отправьте электронное письмо
по адресу netlib@ornl.gov с просьбой выслать xnetlib.shar
с сервера xnetlib или анонимного ftp-сервера cs.utk.edu/pub/xnetlib.
Запрос на программное обеспечение ПВМ также можно отправить по электронной
почте. Для его получения пошлите электронное письмо по адресу netlib@ornl.gov
с сообщением send index from pvm3. Автоматический обработчик почты
возвратит список доступных файлов с инструкциями. Преимуществом такого
способа является доступность получения программного обеспечения каждым
желающим, имеющим доступ к электронной почте в сети Internet.
Установка ПВМ для ее использования
Одними из причин популярности ПВМ являются простота установки и использования.
Для инсталляции ПВМ не требуется специальных привилегий. Каждый, у
кого есть достоверный логин в системе хоста может это сделать. В дополнение
к этому, только одному из лиц в организации требуется проинсталлировать
ПВМ для всеобщего использования в пределах данной организации.
ПВМ использует две переменных окружения - когда запускается и выполняется.
Следовательно, каждый пользователь ПВМ должен установить эти две переменные
для использования ПВМ. Первая переменная - PVM_ROOT - нужна
для определения местонахождения инсталлированного каталога pvm3.
Вторая переменная - PVM_ARCH - сообщает ПВМ тип архитектуры
данного хоста и, тем самым, что исполняемому коду "забрать"
из каталога PVM_ROOT.
Наиболее простым способом установки этих двух переменных является
их определение в соответствующем файле .cshrc. Предполагается,
что Вы пользуетесь csh. Пример определения PVM_ROOT:
setenv PVM_ROOT $HOME/pvm3
Рекомендуется, чтобы пользователь устанавливал PVM_ARCH,
дописывая в файл .cshrc содержимое файла $PVM_ROOT/lib/cshrc.stub.
Для успешного определения PVM_ARCH строка должна помещаться
после строки c переменной PATH. Эта строка автоматически
задает PVM_ARCH данного хоста и, частично, может быть использована,
когда пользователь разделяет общую файловую систему (например, NFS)
в среде с несколькими различными архитектурами.
Исходные тексты ПВМ поставляются совместно с другим содержимым каталогов
и файлами сборки для большинства архитектур из тех, которые могут
иметься у Вас. Процесс сборки для каждого из поддерживаемых типов
архитектур происходит автоматически - путем логина на хосте, обращения
к каталогу PVM_ROOT и вводом make. Файл сборки
будет автоматически определять, на какой архитектуре он начал выполняться,
создавать соответствующие подкаталоги и "строить" pvm,
pvmd3, libpvm3, libfpvm3.a, pvmgs, libgpvm3.a. Он поместит все эти
файлы в $PVM_ROOT/lib/PVM_ARCH, за исключением pvmgs,
который переносится в $PVM_ROOT /bin/PVM_ARCH.
Таким образом, необходимо:
установить PVM_ROOT и PVM_ARCH в соответствующем
файле .cshrc;
построить ПВМ для каждого типа архитектуры;
создать файлы .rhosts на каждом из хостов и перечислить в них все
желательные для использования хосты;
создать файл $HOME/.xpvm_hosts и перечислить в нем все
желательные для использования хосты, предваряя их символом &
В табл. 11 перечисляются возможные значения PVM_ARCH и соответствующие
им типы архитектур, поддерживаемые ПВМ версии 3.3.
Таблица 11. Возможные значения константы PVM_ARCH.
PVM_ARCH
Тип компьютера
Примечания
Запуск ПВМ
Прежде чем перейти к компиляции и выполнению параллельных программ,
Вы должны убедиться в том, что можете запустить ПВМ и сконфигурировать
виртуальную машину. На любом из хостов, на которых инсталлирована
ПВМ, Вы можете ввести:
% pvm
После чего Вы должны увидеть приглашение консоли ПВМ, говорящее о
том, что ПВМ теперь запущена на данном хосте. Вы можете добавить хосты
в свою виртуальную машину, введя с консоли:
pvm> add имя_хоста
Также Вы можете удалить хосты (исключая тот, за которым Вы находитесь)
из своей виртуальной машины, введя:
pvm> delete имя_хоста
Для того, чтобы увидеть, что представляет собой в настоящий момент
виртуальная машина, введите:
pvm> conf
Для того, чтобы увидеть, какие задачи ПВМ выполняются на виртуальной
машине, введите:
pvm> ps -a
Конечно, у Вас пока нет никаких задач; об этом в следующем разделе.
Если Вы введете quit с консоли, то консоль прекратит свое
существование, но виртуальная машина сохранится, а задачи будут продолжать
выполняться. В случае с любым приглашением Unix на любом хосте из
виртуальной машины Вы можете ввести:
% pvm
И получить сообщение "pvm already running" на консоль.
Когда Вы завершаете работу с виртуальной машиной Вы должны ввести:
pvm> halt
Эта команда принудительно завершает работу всех задач ПВМ, выключит
виртуальную машину и произойдет выход из консоли. Это рекомендуемый
способ остановки ПВМ, потому что он гарантирует нормальное завершение
работы виртуальной машины.
Вы должны попрактиковаться в запуске, остановке ПВМ и добавлении в
нее хостов, прежде чем сможете чувствовать себя комфортно за консолью
ПВМ. Полное описание консоли ПВМ и множества опций ее команд приводится
в конце данного раздела.
Если Вы не хотите вводить связку из имен хостов каждый раз, то воспользуйтесь
опцией hostfile. Вы можете перечислить имена хостов в файле
- по одному в строчке - и затем ввести:
pvm> hostfile
После чего ПВМ будет сразу добавлять все указанные хосты до появления
приглашения консоли. Несколько опций может встречаться персонально
для каждого из хостов в данном файле. Описание находится в конце этого
раздела - для тех пользователей, которые пожелают подстроить свои
виртуальные машины под специфические приложения или среды.
Существуют другие варианты запуска ПВМ. Функции консоли и монитора
производительности объединены в графическом пользовательском интерфейсе,
названном XPVM, который в нескомпилированном варианте доступен в библиотеке
netlib. Для запуска ПВМ с графическим интерфейсом X window
введите:
% xpvm
При нажатии кнопки под названием hosts "выпадет" список
хостов, которые можно добавлять. Если Вы кликните на имя хоста, то
он будет добавлен, а иконка машины станет анимированной, соответствующей
виртуальной машине. Хост удаляется, если Вы кликните на имя хоста,
который уже был включен в виртуальную машину (см. рис. 83). При запуске
XPVM происходит чтение файла $HOME/.xpvm_hosts, в котором
перечислены хосты для отображения в меню. Хосты без префикса &
при запуске добавляются все сразу.
Рис. 83. Добавление хостов в системе XPVM
Назначение кнопок quit и halt аналогично соответствующим
командам консоли ПВМ. Если вы выходите из XPVM и затем перезапускаете
его, то XPVM автоматически отображает, что при этом представляет собой
виртуальная машина. Попрактикуйтесь в запуске, остановке XPVM и добавлении
хостов с его помощью. Возникающие ошибки должны находить отображение
в окне, из которого вы запустили XPVM.
Знаете ли Вы, что методы Рунге - Кутты - это важное семейство численных алгоритмов решения обыкновенных дифференциальных уравнений и их систем. Данные итеративные методы явного и неявного приближённого вычисления были разработаны около 1900 года немецкими математиками К. Рунге и М. В. Куттой. Формально, методом Рунге - Кутты является модифицированный и исправленный метод Эйлера, они представляют собой схемы второго порядка точности. Существуют стандартные схемы третьего порядка, не получившие широкого распространения. Наиболее часто используется и реализована в различных математических пакетах (Maple, MathCAD, Maxima) стандартная схема четвёртого порядка. Иногда при выполнении расчётов с повышенной точностью применяются схемы пятого и шестого порядков. Построение схем более высокого порядка сопряжено с большими вычислительными трудностями. Методы седьмого порядка должны иметь по меньшей мере девять стадий, в схему восьмого порядка входит 11 стадий. Хотя схемы девятого порядка не имеют большой практической значимости, неизвестно, сколько стадий необходимо для достижения этого порядка точности. Аналогичная задача существует для схем десятого и более высоких порядков.