Камерон Хьюз - Параллельное и распределенное программирование на С++
- Название:Параллельное и распределенное программирование на С++
- Автор:
- Жанр:
- Издательство:Издательский дом «Вильямс»
- Год:2004
- Город:МоскваСанкт-ПетербургКиев
- ISBN:ISBN 5-8459-0686-5 (рус.)ISBN 0-13-101376-9 (англ.)
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Камерон Хьюз - Параллельное и распределенное программирование на С++ краткое содержание
Эта книга адресована программистам, проектировщикам и разработчикам программных продуктов, а также научным работникам, преподавателям и студентам, которых интересует введение в параллельное и распределенное программирование с использованием языка С++.
Параллельное и распределенное программирование на С++ - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
pvm> spawn -> MyPvmProgram
Запуск PVM-программ c помощью XPVM
Кроме PVM-консоли, можно использовать графический интерфейс XPVM для X Windows. На рис. 6.2 показано диалоговое окно сеанса работы с XPVM-интерфейсом.
Библиотека PVM не требует, чтобы С++-программа придерживалась какой -л ибо конкретной структуры. Первая PVM-функци я, вызываема я программой, «поме щ ает» ее в PVM-среду. Дл я каждой программы, которая я вл я ется частью PVM-среды, следует всегда вызывать функцию pvm_exit (). Если этого не сделать, система зависнет.
Практика показывает, что функции 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 | IBM 370 |
KSRI | Kendall Square KSR-1 | UVAX | DEC LicroVAX |
Параграф2
Выполняемые файлы любых программ, участвующих в среде PVM, должны быть размещены на всех компьютерах, включенных в среду PVM, или доступны всем компьютерам, включенным в среду PVM. При этом каждая программа должна быть скомпилирована для работы с учетом конкретной архитектуры. Это означает, что, если в среду PVM включены процессоры UltraSparcs, PowerPCs и Intel, то мы должны иметь версию программы, скомпилированную для каждой архитектуры. Эту версию программы следует разместить в известном для PVM месте. Таким местом часто служит каталог $HOME/pvm3/bin. Этот каталог может быть также задан в файле конфигурации PVM, который обычно имеет имя hostfile или .xpvm_hosts (если используется среда XPVM). Файл hostfile должен содержать такую запись: ep=/usr/local/pvm3/bin
Эта запись означает, что любые пользовательские выполняемые файлы, необходимые для среды PVM, можно найти в каталоге /usr/local/pvm3 /bin.
Параграф 3
Пользователь, запускаю щ ий PVM-программу, должен иметь сетевой доступ (rsh или ssh) к каждому компьютеру, включенному в среду PVM. По умолчанию PVM получает доступ к каждому компьютеру, используя зарегистрированное имя пользователя, запускаю щ его PVM-программу, или учетную запись компьютера, на котором она запускается. Если потребуется другая учетная запись (помимо зарегистрированного имени пользователя-инициатора), то в файл конфигурации PVM hostfile или .xpvm_hosts необходимо добавить соответствую щ ую запись, например: lo= flashgordon
Параграф4
Создайте на каждо м компьютере файл .rhosts, в котором перечислите все компьютеры, подлежа щ ие использованию. Эти компьютеры имеют потенциальную возможность для включения в среду PVM. В зависи м ости от содержи м ого файла .xpvm_hosts или файла pvm_hosts, эти компьютеры автоматически будут добавлены в PVM-среду при запуске программы pvmd. Ко м пьютеры, перечисленные в этих файлах, также м огут дина м ически включаться в PVM-среду во вре м я работы.
Параграф 5
Создайте файл $HOME/.xpvm_hosts и/или файл $HOME/pvm_hosts, в котором перечислите все подлежа щ ие использованию ко м пьютеры с приставкой Нал и чиеприставки "&" означает неавтоматическое включение компьютера. Без этой приставки компьютер будет включен в PVM-среду автоматически. Файл pvm_hosts создается пользователем и может иметь произвольное имя. Но в среде XPVM необходимо использовать только имя .xpvm_hosts. Пример такого файла показан на рис. 6.3. Аналогичный формат следует использовать для pvm_hosts- или . xpvm_hosts.
Читать дальшеИнтервал:
Закладка: