( ПРВ ) Параллельные и распределенные вычисления_Лабораторная работа 3

Раздел
Программирование
Просмотров
122
Покупок
0
Антиплагиат
70% Антиплагиат.РУ (модуль - Интернет Free)eTXTАнтиплагиат.ВУЗ
Размещена
24 Ноя 2022 в 15:16
ВУЗ
ДонГТУ
Курс
3 курс
Стоимость
100 ₽
Демо-файлы   
1
png
Скриншот 24.11.22_13.33.00 Скриншот 24.11.22_13.33.00
351.8 Кбайт 351.8 Кбайт
Файлы работы   
1
Каждая работа проверяется на плагиат, на момент публикации уникальность составляет не менее 40% по системе проверки eTXT.
rar
lab3_( ПРВ ) Параллельные и распределенные вычисления
991.3 Кбайт 100 ₽
Описание

Тема: Двухточечные неблокирующие обмены.

Цель: Получить практические навыки по планированию операций обмена и взаимодействию процессов с использованием двухточечных неблокирующих обменов.

Оглавление

Задание к лабораторной работе

 

Необходимо переработать MPI-программу с предыдущей лабораторной работы №2, используя вместо блокирующих функций двухточечного обмена неблокирующие функции двухточечного обмена. Придерживаясь рекомендаций данных ниже.

2.1 Изучите содержимое файла MPI-программы vector.c. Изучите вспомогательные функции, описанные в данном файле.

2.2   Добавьте в начале функции main описание следующих переменных:

MPI_Request* requests = NULL; // массив идентификаторов запросов

MPI_Status* statuses = NULL; // массив статусов сообщений

2.3 Модифицируйте цикл отправки сообщений, дочерним процессам используя функцию неблокирующей отправки сообщения MPI_Isend. Перед циклом отправки сообщений необходимо выделить память для массивов идентификаторов обменов и статусов обменов, используя код:

requests = (MPI_Request*)malloc(sizeof(MPI_Request) * CommSize);

statuses = (MPI_Status*)malloc(sizeof(MPI_Status) * CommSize);

2.4 После цикла отправки сообщений дочерним процессам подождите завершения всех обменов, используя функцию MPI_Waitall. После того как отработает функция MPI_Waitall проверьте статусы возвращенных обменов, проанализировав содержимое массива statuses

2.5 Модифицируйте цикл приема сообщений, от дочерних процессов используя функцию неблокирующего приема сообщения MPI_Irecv. После цикла приема сообщений от дочерних процессов подождите завершения всех обменов, используя функцию MPI_Waitall. После того как отработает функция MPI_Waitall проверьте статусы возвращенных обменов, проанализировав содержимое массива statuses.

2.6  В начале функции calc объявите переменную:

MPI_Request request; // запрос

2.7 Замените вызов функции MPI_Probe(MASTER_PROCESS, TAG_VECTOR_DATA, MPI_COMM_WORLD, &MpiStatus) на следующий код:

while(flag == 0) { // ожидаем прихода данных

MPI_Iprobe(MASTER_PROCESS, TAG_VECTOR_DATA , MPI_COMM_WORLD, &flag, &MpiStatus); // здесь можно сделать любую полезную работу

// когда процесс простаивает в ожидании данных

// предупреждение: тут на консоль лучше ничего не выводить

// иначе повесите всю программу }

Подумайте, какую полезную работу при таком ожидании может выполнять дочерний процесс.

2.8 Замените вызов функции MPI_Recv на комбинацию вызовов MPI_Irecv и MPI_Wait с проверкой статуса завершения обмена.

2.9 Замените вызов функции MPI_Send на комбинацию вызовов MPI_Isend и MPI_Wait с проверкой статуса завершения обмена.

2.10 Перед возвратом из функции main освободите динамически выделенную память под массивы requests и statuses.

2.11 Произведите компиляцию приложения, при возникновении ошибок исправьте их.

Список литературы

Литература

Эндрю Таненбаум, Мартин ван Стеен Распределенные системы. Принципы и парадигмы = Andrew S. Tanenbaum, Maarten van Steen. "Destributed systems. Principles and paradigms. — Санкт-Петербург: Питер, 2003. — 877 с. — (Классика computer science). — ISBN 5-272-00053-6

С. Н. Андрианов, А. Б. Дегтярев 1 // ПАРАЛЛЕЛЬНЫЕ И РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ. — С.-Петерб.: Издательство С.-Петербургского университета, 2007. — 61 с.

А. А. Букатов, В. Н. Дацюк, А. И. Жегуло Программирование многопроцессорных вычислительных систем. — Ростов-на-Дону: ООО «ЦВВР», 2003. — 208 с. — ISBN 5-94153-062-5

Эндрюс Г.Р. Основы многопоточного, параллельного и распределенного программирования. Пер.с англ. — М.: Издательский дом «Вильямс», 2003.

Миллер Р., Боксер Л. Последовательные и параллельные алгоритмы. Пер. с англ. — М.: БИНОМ. Лаборатория знаний, 2006.

Богачёв К.Ю. Основы параллельного программирования. — М.: БИНОМ. Лаборатория знаний, 2003.

Вам подходит эта работа?
Похожие работы
Основы программирования
Лабораторная работа Лабораторная
2 Ноя в 14:20
13 +13
0 покупок
Другие работы автора
Организация ЭВМ
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:48
328 +2
0 покупок
Организация ЭВМ
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:46
281 +1
0 покупок
Организация ЭВМ
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:44
254 +1
0 покупок
Организация ЭВМ
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:40
257 +1
1 покупка
Организация ЭВМ
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:38
227 +1
0 покупок
Организация ЭВМ
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:36
301 +2
0 покупок
Организация ЭВМ
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:33
202 +1
0 покупок
Основы программирования
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:30
201 +1
0 покупок
Основы программирования
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:26
171
0 покупок
Основы программирования
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:24
170
0 покупок
Основы программирования
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:19
182
0 покупок
Основы программирования
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:13
166 +1
0 покупок
Основы программирования
Лабораторная работа Лабораторная
24 Ноя 2022 в 15:09
148 +1
0 покупок
Компьютерные сети и системы
Лабораторная работа Лабораторная
24 Ноя 2022 в 12:53
2 271
0 покупок
Компьютерные сети и системы
Лабораторная работа Лабораторная
24 Ноя 2022 в 12:50
8 409 +40
0 покупок
Компьютерные сети и системы
Лабораторная работа Лабораторная
24 Ноя 2022 в 12:46
152 +1
0 покупок
Компьютерные сети и системы
Лабораторная работа Лабораторная
24 Ноя 2022 в 12:43
1 327 +2
0 покупок
Компьютерные сети и системы
Лабораторная работа Лабораторная
24 Ноя 2022 в 12:39
161
0 покупок
Компьютерные сети и системы
Лабораторная работа Лабораторная
24 Ноя 2022 в 12:35
162 +1
0 покупок
Электротехника
Контрольная работа Контрольная
23 Ноя 2022 в 19:52
206 +1
0 покупок
Темы журнала
Показать ещё
Прямой эфир