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

Здесь есть возможность читать онлайн «Камерон Хьюз - Параллельное и распределенное программирование на С++» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: МоскваСанкт-ПетербургКиев, Год выпуска: 2004, ISBN: 2004, Издательство: Издательский дом «Вильямс», Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Параллельное и распределенное программирование на С++: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Параллельное и распределенное программирование на С++»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

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

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Параллельное и распределенное программирование на С++», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

//...

float Value[10] ; pvm_recv (400002,2) ; pvn_unpkfloat(400002, Value,l) ;cout « Value..

Здесь фу н кция pvm_recv() обеспечивае т ожидание сооб щ ения от задачи, идентификатор которой равен 400002.Идентификатор сооб щ ения (messageid), полученно г о от задачи c номером 400002,должен быть равен значению 2.Затем используется функция распаковки для считывания массива чисел с плаваю щ ей точкой типа float. То г да как функция pvm_recv () вынуждает задачу ожидать до тех пор, пока она не получит сооб щ ение, функция pvm_nrecv () обеспечивает прием сообщений без блокирования. Если соответствующее сообщение не посгупает адресагу, функция pvm_nrecv () немедленно завершается. По прибытии сооб щ ения по месту назначени я функци я pvm_nrecv () сразу же завершаетс я, а активный буфер будет содержать полученное сооб щ ение. Если произойдет сбой, функция pvm_nrecv() возвратит отрицательное значение. Если сооб щ ение не поступит адресату, функция возвратит число 0.Если сооб щ ение бла г ополучно прибудет по месту назначения, функция возвратит номер ново г о активно г о буфера. Параметр taskid содержит идентификатор задачи-отправителя. Параметр messageid содержит идентификатор сооб щ ения, определенный пользователем. Если taskid = -1,функция pvm_nrecv() примет сооб щ ение от любой задачи. Если messageid = -1,эта функция примет любое сооб щ ение. При прие м е сооб щ ений с помощью функций pvm_recv () или pvm_nrecv () создается новый активный буфер, а теку щ ий буфер приема очищается.

Тогда как функции pvm_recv (), pvm_nrecv () и pvm_trecv () принимают сооб щ ения в новый активный буфер, функция pvm_precv () принимает сооб щ ение непосредственно в буфер, определенный пользователем. Параметр taskid содержит идентификатор задачи-отправителя. Параметр messageid идентифицирует получаемые сооб щ ения. Параметр buffer должен содержать реально принятое сооб щ ение. Поэтому вместо получения сооб щ ения из активного буфера с по м о щ ью одной из функций распаковки, сооб щ ение считывается напрямую из пара м етра buffer. Параметр size содержитдлину сооб щ ения в байтах. Параметр type определяет тип данных, содержа щ ихся в сооб щ ении. Параметр type может иметь следую щ ие значения:

PVM_STR PVM_BYTE

PVM_SHORT PVM_INT

PVM_FLOAT PVM_DOUBLE

PVM_LONG PVM_USHORT

PVM_CPLX PVM_DCPLX

PVM_UINT PVM_ULONG

Функция pvm_trecv() позволяет программисту организовать процедуру получения сооб щ ений с ограничением по времени. Эта функция заставляет вызываю щ ую задачу перейти в заблокированное состояние и ожидать прихода сооб щ ения, но лишь в течение промежутка времени, заданного параметром timeout. Этот параметр представляет собой струкгуру типа timeval, определенную в заголовке time.h, например:

#include «pvm3.h» //. . .

struct timeval TimeOut; TimeOut.tv_sec = 1000; int TaskId; int MessageId;

TaskId = pvm_parent(); MessageId = 2;

pvro_trecv(TaskId,MessageId, &TimeOut) ; //...

Здесь переменная TimeOutсодержит член tv_sec,установленный равным ЮОО с. Структуру timevalможно использовать для установки временных значений в секундах и микросекундах. Структура timevalимеет следую щ ий вид:

struct timeval{

long tv_sec; // секунды

long tv_usec; // микросекунды

};

Этот пример означает, что функция pvm_trecv() заблокирует вызываю щ ую задачу максимум на 1000c. Если сооб щ ение будет получено до истечения заданных ЮОО с, функция сразу завершится. Функцию pvm_trecv() можно использовать для предотвращения бесконечных задержек и взаимоблокировок. При успешном выполнении функция pvm_trecv() возвра щ ает номер нового активного буфера, в противном случае (при возникновении ошибки) — отрицательное значение. Если taskid = -1,функция примет сооб щ ение от любого отправителя. Если messageid = -1,функция примет любое сооб щ ение.

Функция pvm_probe() определяет, поступило ли сооб щ ение, заданное параметром messageid,от отправителя, заданного параметром taskid.Если функция pvm_probe() «видит» указанное сооб щ ение, она возвра щ ает номер нового активного буфера. Если заданное сооб щ ение не прибыло, функция возвра щ ает число О. При возникновении сбоя функция возвра щ ает отрицательное значение.

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

Интервал:

Закладка:

Сделать

Похожие книги на «Параллельное и распределенное программирование на С++»

Представляем Вашему вниманию похожие книги на «Параллельное и распределенное программирование на С++» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


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

Обсуждение, отзывы о книге «Параллельное и распределенное программирование на С++» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x