Параллельное и распределенное программирование на С++
Шрифт:
pvm> spawn -> MyPvmProgram
Запуск PVM-программ c помощью XPVM
Кроме PVM-консоли, можно использовать графический интерфейс XPVM для X Windows. На рис. 6.2 показано диалоговое окно сеанса работы с XPVM-интерфейсом.
Библиотека PVM не требует, чтобы С++-программа придерживалась какой – л ибо конкретной структуры. Первая PVM-функци я, вызываема я программой, «поме щ ает» ее в PVM-среду. Дл я каждой
Практика показывает, что функции pvm_mytid и pvm_parent необходи м о вызывать в начале обработки задачи. Наиболее популярные категории функций PVM перечислены в табл. 6.1.
Рис. 6.2. Диалоговое окно графического интерфейса XPVM
Таблица 6.1. Семь категорий фу н кций библио т еки PVM
Категории PVM-функций
Описание
Управление процессами
Упаковка сообщений и их отправка
Распаковка сообщений и их прием
Обмен задач сигналами Управление буфером сообщений
Функции обработки информации и служебные процедуры
Групповые операции
Используются для управления PVM-процесса м и
Применяются для упаковки сооб щ ений в пересылочном буфере и отправки их от одного PVM-процесса другому
Используются для получения сооб щ ений и распаковки данных из активного буфера
Применяются для си г нализации и уведомления PVM-процессов о возникновении события
Используются для инициализации, очистки и размещения буферов, предназначенных для приема и отправки сообщений, которыми обмениваются PVM-процессы
Применяются для получения информации о PVM-процессах и выполнения дру г их важных задач
Используются для объединения процессов в группы и выполнения других групповых операций
Требования к PVM-программам
Если PVM-среда реализуется в виде сети компьютеров, то, прежде чем ваша С++-программа начнет взаимодействовать с ней, необходимо обработать следующие элементы.
Параграф 1
Следует установить переменные среды PVM_ROOT и PVM_ARCH. Переменная среды PVM_ROOT должна указывать на каталог, в котором инсталлирована PVM-б иблиотека.
Использование оболочки Bourne (BASH)
Использование С-оболочки_
$ PVM_ROOT=/usr/lib/pvm3
setenv PVM_ROOT /usr/lib/pvm3
$ export PVM_ROOT
Переменная среды PVM_ARCH идентифицирует архитектуру компьютера. Каждый компьютер, включенный в среду PVM,
должен быть идентифицирован архитектурой. Например, Ultrasparcs-компьютеры имеют обозначение SUN4SOL2, а Linux-компьютеры — обозначение LINUX. В табл. 6.2 перечислены самые распространенные архитектуры для PVM-среды.Эта таблица содержит имя и тип компьютера, соответствую щ ий этому имени. Установите свою переменную среды PVM_ARCH равной одному из имен, приведенных в табл. 6.2. Например:
Использование оболочки Bourne (BASH) _ Использование С-оболочки _
$PVM_ARCH=LIMJX setenv PVM_ARCH LINUX
$export PVM_ARCH
Таблица 6.2. Самые распростра н енные архитек т уры для PVM-среды
PVM_ARCH
Компьютер
PVM__ARCH
Компьютер
AFX8
Alliance
LINUX
80386/486 PC (UNIX)
ALPHA
DEC Alpha
MASPAR
Maspar
BAL
Sequent Balance
MIPS
MIPS 4680
BFLY
BBN ButterflyTC2000
NEXT
NeXT
BSD386
80386/486 PC (UNIX)
PGON
Intel ParagonIntel Paragon
CM2
«Мыслящая машина» CM2
PMAX
DECstation 3100,5100
CM5
«Мыслящая машина» CM5
RS6K
IBM/RS6000
CNVX
Convex С-серии
RT
IBM RT
CNVXN
Convex С-серии
SGI
Silicon Graphics IRIS
CRAY
C-90, YMP,T3D (доступный
порт) SGI5
Silicon Graphics IRIS
CRAY2
Cray-2
SGIMP
SGI Multiprocessor
CRAYSIMP
CrayS-MP
SUN3
Sun3
6.2. Библио т ека PVM для языка С++ 221
Окончание табл. 6.2
PVM_ARCH
Компьютер
PVM_ARCH
Компьютер
DGAV
Data General Aviion
SUN4
Sun 4, SPARCstation
E88K
Encore 88000
SUN2SOL2
Sun 4, SPARCstation
HP300
НР-9000 Model 300
SUNMP
SPARC Multiprocessor
HPPA
НР-9000 PA-RISC
SYMM
Sequent Symme^
I860
Intel iPSC/860
TITN
Stardent Titan
IPSC2
Intel iPSC/2 386 Host
U370