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

Тут можно читать онлайн Камерон Хьюз - Параллельное и распределенное программирование на С++ - бесплатно полную версию книги (целиком) без сокращений. Жанр: 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
В книге представлен архитектурный подход к распределенному и параллельному программированию с использованием языка С++. Здесь описаны простые методы программирования параллельных виртуальных машин и основы разработки кластерных приложений. Эта книга не только научит писать программные компоненты, предназначенные для совместной работы в сетевой среде, но и послужит надежным «путеводителем» по стандартам для программистов, которые занимаются многозадачными и многопоточными приложениями. Многолетний опыт работы привел авторов книги к использованию агентно-ориентированной архитектуры, а для минимизации затрат на обеспечение связей между объектами системы они предлагают применить методологию «классной доски».
Эта книга адресована программистам, проектировщикам и разработчикам программных продуктов, а также научным работникам, преподавателям и студентам, которых интересует введение в параллельное и распределенное программирование с использованием языка С++.

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

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

Интервал:

Закладка:

Сделать

PvmDataDefault XDR

PvmDataRaw В зависи м ости от м арки ко м пьютера (без кодирования)

PvmDataInPlace Используются только указатели на данные и их размер

При успешном выполнении функция pvm_mkbuf() возвра щ ает идентификатор нового активного буфера, в противном случае — отрицательное значение. Для каждого обра щ ения к функции pvm_mkbuf() , если буфер отправки больше не будет нужен, необходи м о вызвать функцию pvm_freebuf() , которая освободит память, выделенную функцией pvm_mkbuf(). Функцию pvm_freebuf() с л едует испо л ьзовать то л ько в случае, когда сооб щ ение уже отправлено и в буфере нет никакой необходимости.

Доступ к стандартному входному потоку (stdin) и стандартному выходному потоку (stdout) со стороны PVM-задач

Среда PVM связывает воедино коллекцию ко м пьютеров и представляет их для програ мм ы в виде одной логической машины с нескольки м и процессора м и. При этом возникают следующие вопросы. Какой ко м пьютер в PVM-среде должен действовать как консоль? Где будут отображаться данные, выводи м ые PVM-задачей в объект coutтипа ostream?Если PVM-задача попытается принять данные с клавиатуры, то с какой и м енно клавиатуры она должна их считывать? Выходной поток stdoutдля каждо г о сыновнего процесса перехватывается и отправляется назначенной PVM-задаче в виде PVM-сооб щ ения. Каждый сыновний процесс наслелует инфор м ацию, которая определяет, какая за д ача д олжна принять д анные, записанные в поток stdout,и как эти д анные д о л жны быть и д ентифицированы. Вхо д ной поток каж д ого сыновнего процесса связан с устройство м /dev/null.Все, что записано в устройство /dev/null,теряется. Если устройство /dev/nullоткрыто д л я чтения, возвра щ ается эквивалент признака конца файла. Это означает, что ко д сыновних процессов не д олжен соз д аваться в расчете на считывание вхо д ных д анных из стан д артного потока stdin (cin)или назапись выходных д анных в стан д артный поток stdout (cout).При этом потоки stdinи stdout д ля ро д ительской задачи ве д ут себя вполне ожи д аемым образом. PVM-задачи для взаимодействия между собой должны использовать сооб щ ения. Это значит, что входные данные можно принимать из сооб щ ений, каналов, об щ ей (разделяемой) памяти, переменных среды, ар г ументов командной строки или файлов. И точно так же выходные данные можно записывать в сооб щ ения, каналы, общую память и файлы.

Получение доступа к стандартному выходному потоку (cout) из сыновней задачи

Поведение выходных данных, записанных в выходной поток stdoutили по м ещенных в объект cout,отличается для различных порожденных PVM-задач. Именно родительский процесс решает, что в конце концов с ними должно произойти. Ко г да выходные данные из порожденно г о потомка поме щ аются в объект coutили cerr,они перехватываются демоном pvmdи упаковываются в стандартные PVM-сообщения, которые отправляются задаче с идентификатором TaskId,заданным родителем. Родительский процесс может связать пару (TaskId, Code)с объектами coutи cerrсвое г о сыновне г о процесса. Это реализуется с помо щ ью функции pvm_setopt(), которая вызывается перед порождением потомка. Если значение TaskIdравно 0,сооб щ ения попадут велу щ ему демону pvmdи будут записаны в е г о журнал ре г истрации ошибок. Порожденный процесс может установить значение переменной TaskIdравным 0или значению, унаследованному от е г о родителя, или собственному значению идентификатора TaskId.Это означает, что именно родительский процесс управляет тем, куда будет записано содержимое объектов coutили cerr.Порожденнал PVM-задача может назначить дру г ие PVM-задачи для получения данных, поме щ енных в объекты coutили cerr.Обычно записью любых важных данных в потоки stdoutили stdinуправляет порождаю щ ая задача, а всем остальным ведает веду щ ий демон pvmd.

Резюме

Библиотека PVM, отличаю щ аяся большой г ибкостью средств, по д держивает большинство моделей параллельно г о про г раммирования. К достоинствам PVM-среды относится ее способность работать с г етеро г енны м и коллекция м и ко м пьютеров, которые м огут состоять из процессоров, отличаю щ ихся характеристика м и быстродействия, размера м и и архитектурой. По м и м о аппаратной совмести м ости, библиотека PVM прекрасно работает со стандартной С++-библиотекой и систе м ной библиотекой UNIX/Linux. В результате объединения с воз м ожностя м и C++-шаблонов, средств объектно-ориентированно г о про г ра мм ирования и коллекций алгоритмов мо щ ь PVM-среды значительно возрастает. Шаблоны прекрасно вписываются в SPMD-про г ра м мирование. А для расширени я воз м ожностей PVM-среды при испо л ьзовании моде л ей MIMD (MPMD) можно успешно использовать контейнеры и алгоритмы. В г л аве 13 мы подробнее познакомимся со сред СТв +* PVM-биб л иотеки и покажем, как ее можно использовать для С++-реализации МИтегии «классной доски». Эта стратегия — один из основных способов решения 0^ блем параллельного программирования. П**°*

Обработка ошибок, исключительных ситуаций и надежность программного обеспечения

Всегда можно изобрести суперсложные модели, чтобы объяснить множество исследуемых фактов, но ученыи, если он не философ, скорее примет самую простую теорию, которая согласуется со всеми имеющимися у негоданными.

Алястер Pu(Alastair Rae), Quantum Physics Illusion or Reality

Одна из главных целей разработки и проектирования программного обеспечения— создать программу, которая бы отвечала требованиям пользователя и работала корректно и надежно. Пользователи требуют от ПО корректности и надежности, независимо от его конкретного назначения. Использование ненадежных программ в любой сфере — финансовой, промышленной, медицинской, научной или военной— может иметь разрушительные последствия. Зависимость людей и механизмов от ПО на всех уровнях нашего общества вынуждает его создателей сделать все возможное, чтобы их детище было надежным, робастным и отказоустойчивым. Эти требования налагают дополнительную ответственность на разработчиков и проектировщиков ПО, которые создают системы, содержащие параллелизм. Программы с параллелизмом или компоненты, которые выполняются в распределенных средах, содержат больше (по сравнению с ПО без параллелизма) программных уровней. Чем больше уровней, тем сложнее управлять таким ПО. Чем выше сложность системы, тем больше изъянов может остаться в ней невыявленными. А чем больше изъянов в ПО, тем выше вероятность того, что оно откажет, причем в самый неподходящий момент.

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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