Камерон Хьюз - Параллельное и распределенное программирование на С++

Тут можно читать онлайн Камерон Хьюз - Параллельное и распределенное программирование на С++ - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом «Вильямс», год 2004. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Параллельное и распределенное программирование на С++
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом «Вильямс»
  • Год:
    2004
  • Город:
    МоскваСанкт-ПетербургКиев
  • ISBN:
    ISBN 5-8459-0686-5 (рус.)ISBN 0-13-101376-9 (англ.)
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Камерон Хьюз - Параллельное и распределенное программирование на С++ краткое содержание

Параллельное и распределенное программирование на С++ - описание и краткое содержание, автор Камерон Хьюз, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
В книге представлен архитектурный подход к распределенному и параллельному программированию с использованием языка С++. Здесь описаны простые методы программирования параллельных виртуальных машин и основы разработки кластерных приложений. Эта книга не только научит писать программные компоненты, предназначенные для совместной работы в сетевой среде, но и послужит надежным «путеводителем» по стандартам для программистов, которые занимаются многозадачными и многопоточными приложениями. Многолетний опыт работы привел авторов книги к использованию агентно-ориентированной архитектуры, а для минимизации затрат на обеспечение связей между объектами системы они предлагают применить методологию «классной доски».
Эта книга адресована программистам, проектировщикам и разработчикам программных продуктов, а также научным работникам, преподавателям и студентам, которых интересует введение в параллельное и распределенное программирование с использованием языка С++.

Параллельное и распределенное программирование на С++ - читать онлайн бесплатно полную версию (весь текст целиком)

Параллельное и распределенное программирование на С++ - читать книгу онлайн бесплатно, автор Камерон Хьюз
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Рис.6.6. Базовая архи т ек т ура PVM-среды

Функции управления процессами

Библиотека PVM содержит шесть часто используе м ых функций.

Функция pvm_spawn () используется для создания новых PVM-задач. При вызове этой функции м ожно указать количество создавае м ых задач, м есто их создания и аргу м енты, передавае м ые каждой задаче, напри м ер:

pvm_spawn(«agent_filters'\argv++,l,«host 3»,30,&Task3);

6.3. Базовые меха н измы PVM 235

Сикопсис

# inc lude "pvm3 . h»

int pvm_spawn(char *task, char **argv, int flag,

char *location,int ntask,int *taskids); int pvmJcill(int taskid); int pvm_exit(void) ;

intpvn_addhosts(char **hosts,int nhosts,int *status); int pvm_delhosts(char **hosts,int nhosts,int *status); int pvm_halt(void) ;

Параметр taskсодержит имя программы, которую должна выполнить функция pvm_spawn(). Поскольку про г рамма, которая запускается посредством функции pvm_spawn(), является автоно м ной, ей мо г ут потребоваться аргументы командной строки. Поэтомудля их передачи используется пара м етр argv.Параметр locationпозволяет указать, на каком компьютере должна быть выполнена задача. Пара м етр taskidsсодержит либо идентификаторы порождае м ых задач, либо коды состояния, представляю щ ие любые ситуации сбоя, которые м огут возникнуть во вре м я порождения процесса. Параметр ntasksопределяет, сколько экзе м п л яров задачи требуется создать. Функция pvm_kill()испо л ьзуется д л я анну л ирования задачи, указанной спо м о щ ью параметра taskid.С помо щ ью этой функции можно ан н у л ировать л юбую задачу, определенную пользователем в среде PVM, за иск л ючением вызываю щ ей. Эта функция отправляет си г нал SIGTERMPVM-задаче, по д лежа щ ей уничтожению. Функция pvm_exit() используетс я д л я выхо д а вызываю щ ей задачи из сре д ы PVM. Несмотр я на возможность выво д а за д ачи из сре д ы PVM, процесс, которому прина д лежит эта за д ача, может про д олжать выполнение. Слелует иметь в виду, что задача, выполн я ю щ ал вызовы РУМ^>ункций, может выполн я ть и д ру г ую работу, которая не св я зана со средой PVM. Функцию pvm_exit() должна вызывать Любая задача, которая больше не имеет отношения к специфике PVM-обработки. Функция pvm_addhosts() позволяет динамически вносить допол н ительные компьютеры в среду PVM. Обычно при вызове функции pvm_addhosts() передается список имен добавляемых компьютеров, например: int Status[3] ;

char *Hosts[ ] = {«porthos», «dartagnan»,«athos»}; pvm_addhosts («porthose», l,&Status) ;

//.. .

pvm_addhosts (Hosts, 3 , Status) ;

Параметр Hostsобычно содержит имена компьютеров (одно или несколько), перечисленных в файле .rhostsили .xpvm_hosts.Пара м етр nhostсодержит количество компьютеров, подлежа щ их добавлению в среду PVM, а пара м етр status— значение, равное значению пара м етра nhostsпри успешно м выполнении функции pvm_addhosts ().Ec*m при ее вызове не удалось добавить ни одно г о ко м пьютера, значение, возвра щ ае м ое функцией, будет м еньше числа 1.Если выполнение этой функции было лишь частично успешным, значение, возвра щ аемое функцией, будет равно количеству реально добавленных компьютеров. Функция pvm_delhosts() позволяет дина м ически извлечь из среды PVM один или несколько заданных ко м пьютеров. Пара м етр hostsсодержит их список, а параметр nhosts— количество выводимых компьютеров, например: pvm _delhosts («dartagnan», 1) ;

При выполнении этой функции компьютер с именем dartagnan будет извлечен из среды PVM. Функции pvm_addhosts () и pvm_delhosts () можно вызывать во время выполнения приложения. Это позволяет программисту динамически изменять размеры среды PVM. Любая PVM-задача, выполняемал на компьютере, который удаляется из PVM-среды, будет аннулирована. Демоны, выполняю щ иеся на удаляемых компьютерах (pvmd), будут остановлены. В случае возникновения аварийной ситуации на каком-либо компьютере PVM-среда автоматически удалит е г о. Значения, возвра щ аемые функцией pvm_delhosts, совпадают со значениями, возвра щ аемыми функцией pvm_addhosts (). Функция pvm_halt () прекра щ ает работу всей системы PVM. При этом все задачи и демоны (pvmd) останавливаются.

Упаковка и отправка сообщений

Гейст Бигулин (Geist Beguelin) и его колле г и так описывают модель сооб щ ений PVM-среды:

PVM-демоны и задачи могут формировать и отправлять произвольной длины сообщения, содержащие типизированные данные. Если содержащиеся в сообщениях данные имеют несовместимые форматы, то при передаче между компьютерами их можно преобразовать, используя стандарт XDR1. Сообщения помечаются во время отправки с помощью определенного пользователем целочисленного кода и мотуг быть отобраны для приема посредством адреса источника, или тега. Отправитель сообщения не ожидает от получателя подтверждения приема (квитирования), а продолжает работу сразу после отправки сообщения в сеть. Затем буфер сообщений может быть очищен или вновь использован по назначению. Сообщения буфери-зируются до тех пор, пока не будут приняты получателем. PVM-система надежно доставляет сообщения адресатам, если таковые существуют. При оправке сообщений от каждого отправителя каждому получателю их порядок сохраняется. Это означает, что если отправителем было послано несколько сообщений, они будут получены адресатом в том же порядке, в котором были отправлены.

Библиотека PVM содержит семейство функций, используемых для упаковки данных различных типов в буфер оправки. В это семейство входят функции упаковки, предназначе нн ые для символьных массивов, значений типа double, float, int, long, byte и т.д. Список рллт_рк-функций представлен в табл. 6.3.

Таблица 6.3. Фу н кции упаковки

Байты:

int pvm_pkbyte(char *cp, int count, int std) ;

Комплексные числа (комплексные числа типа double):

int pvm_pkcplx(float *xp, int count, int std) ; int pvm_pkdcplx(double *zp, int count, int std) ;

Значения типа double:

int pvm_pkdouble(double *dp, int count, int std) ;

' XDR (eXternal Data Representation) - стандарт для аппаратно-независимых структур данных, pM' работанный фирмой Sun Microsystems.

6.3. Базовые механизмы PVM 237

Окончание табл. 6.3

Значения типа f 1о а t :

int pvm_pkfloat(float *fp, int count, int std); Значения типа int:

int pvm_pkint(int *np, int count, int std) ; Значения типа long.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Камерон Хьюз читать все книги автора по порядку

Камерон Хьюз - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Параллельное и распределенное программирование на С++ отзывы


Отзывы читателей о книге Параллельное и распределенное программирование на С++, автор: Камерон Хьюз. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x