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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Благодаря использованию рангов и коммуникаторов MPI-задачи легко идентифицировать и различать. Ранг и коммуникатор позволяют структурировать программу как SPMD- или MPMD-модель либо как некоторую их комбинацию. Для упрощения кода MPI-программы мы используем ранг и коммуникатор в сочетании с параметризованным программированием и объектно-ориентированными методами. Шаблоны можно использовать не только при м енительно к аспекту различных данных SIMD-модели, но и к заданию различных типов данных. Это значительно упрощает структуру многих приложений, требующих выполнения большого объема одинаковых вычислений, но с различными типами данных. Для реализации модели MPMD (MIMD) мы рекоменлуем использовать динамический полиморфизм (поддерживаемый объектами), параметрический полиморфизм (поддерживаемый шаблонами), объекты-функции и предикаты. Для разделения всего объема работы MPI-приложения эти методы используются в сочетании с рангами и коммуникаторами MPI-процессов. При использовании объектно-ориентированного подхода работа программы делится между семействами объектов. Все семейства объектов связываются с различными коммуникаторами. Соответствие семейств объектов различным коммуникаторам способствует модульности проекта MPI-приложения. Такой способ разделения также помогает понять, как следует применить параллелизм. Мы убедились, что объектно-ориентированный подход делает MPl-программы более открытыми для расширения, атакже простыми для поддержки, отладки и тестирования.

|Таблица 9.1. Функции, используемыедля работы с коммуникаторами

Функции Описание
int MPI_Intercomm_create(MPI_Comm LocalComm,int LocalLeader, MPI_Comm PeerComm, int remote_leader, int MessageTag, MPI_Comm *CommOut); Создает inter-коммуникатор из двух intraкоммуникаторов
int MPI_Intercomm_merge(MPI_Comm Comm, int High, MPI_Comm *CommOut); Соз д ает intra-коммуникатор из inter- коммуникатора
int MPI_Cartdim_get(MPI_Comm Comm,int *NDims); Возвращает декартову топологическую информацию, связанную с коммуникатором
int MPI_Cart_create(MPI_Comm CommOld, int NDims, int *Dims, int *Periods, int Reorder, MPI_Comm *CommCart) Создает новый коммуникатор, к которому присоединяется топологическая информация
int MPI_Cart_sub(MPI_Comm Comm, int *RemainDims, MPI_Comm *CommNew); Делит коммуникатор на подгруппы, которые образуют декартовы подсистемы более низкой размерности
int MPI_Cart_shift(MPI_Comm Comm, int Direction, int Display,int *Source,int *Destination); Считывает смещенные ранги источника и приемника при заданном направлении и величине смещения
int MPI_Cart_map(MPI_Comm CommOld, int NDims, int *Dims, int *Periods, int *Newrank); Преобразует процесс в декартову топологическую информацию
int MPI_Cart_get(MPI_Comm Comm, int MaxDims, int *Dims, int *Periods, int *Coords); Возвращает декартову топологическую информацию, связанную с коммуникатором
int MPI_Cart_coords(MPI_Comm Comm, int Rank, int MaxDims, int *Coords); Вычисляет координаты процесса в декартовой топологии при заданном ранге в группе
int MPI_Comm_create(MPI_Comm Comm, MPI_Group Group, MPI_Comm *CommOut) ; Создает новый коммуникатор
int MPI_Comm_rank(MPI_Comm Comm, int *Rank ) ; Вычисляет и возвращает ранг вызывающего процесса в коммуникаторе
int MPI_Cart_rank(MPI_Comm Comm, int *Coords, int *Rank ); Вычисляет и возвращает ранг процесса в коммуникаторе при заданном декартовом местоположении
int MPI_Comm_compare(MPI_Comm Comm1, MPI_Comm Comm2, int *Result); Сравнивает два коммуникатора Comm1 и Comm2
int MPI_Comm_dup( MPI_Comm CommIn, MPI_Comm *CommOut) ; Дублирует уже существующий коммуникатор со всей его кашированной информацией
int MPI_Comm_free( MPI_Comm *Comm) ; Отмечает объект коммуникатора как освобожденный
int MPI_Comm_group( MPI_Comm Comm, MPI_Group *Group); Получает доступ к группе, связанной с заданным коммуникатором
int MPI_Comm_size( MPI_Comm Comm, int *Size); Вычисляет и возвращает размер группы, связанной с заданным коммуникатором
int MPI_Comm_split(MPI_Comm Comm, int Color,int Key,MPI_Comm *CommOut) ; Создает новые коммуникаторы на основе цветов и ключей
int MPI_Comm_test_inter( MPI_Comm Comm, int *Flag); Определяет, является ли коммуникатор inter-коммуникатором
int MPI_Comm_remote_group( MPI_Comm Comm, MPI_Group *Group); Получает доступ к удаленной группе, связанной с заданным inter-коммуникатором
int MPI_Comm_remote_size( MPI_Comm Comm, int *Size); Вычисляет и возвращает размер удаленной
группы, связанной с заданным inter-
коммуникатором

Анатомия MPI-задачи

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

Интервал:

Закладка:

Сделать

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

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


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

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

x