Исследование эффективности параллельных вычислений

Раздел
Программирование
Просмотров
162
Покупок
0
Антиплагиат
Не указан
Размещена
24 Ноя 2022 в 18:42
ВУЗ
ТулГУ(Параллельное программирование)
Курс
4 курс
Стоимость
1 500 ₽
Файлы работы   
1
Каждая работа проверяется на плагиат, на момент публикации уникальность составляет не менее 40% по системе проверки eTXT.
docx
КР ПП
282.2 Кбайт 1 500 ₽
Описание

ВВЕДЕНИЕ

 

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

В данной курсовой работе необходимо изучить работу параллельных вычислений с помощью таких технологий, как std::thread, TBB, MPI.

Библиотека std::thread предоставляет стандартный способ управления потоками. Данная технология впервые была добавлена в стандарт С++11. std::thread представляют собой объекты в процессе С++, которые действуют как дескрипторы для лежащих в их основе программных потоков. Некоторые объекты std::thread представляют "нулевые" дескрипторы, т.е. не соответствуют программным потокам, поскольку находятся в состоянии, сконструированном по умолчанию (следовательно, без выполняемой функции); потоки, из которых выполнено перемещение (после перемещения объект std::thread, в который оно произошло, действует как дескриптор для соответствующего программного потока); потоки, у которых выполняемая ими функция завершена; а также потоки, у которых разорвана связь между ними и обслуживающими их программными потоками. API std::thrеаd не предлагает способа непосредственного получения возвращаемых значений из асинхронно выполняемых функций, и, если такие функции генерируют исключения, программа завершается.

Intel Threading Building Blocks (также известная как TBB) — кроссплатформенная библиотека шаблонов C++, разработанная компанией Intel для параллельного программирования. Библиотека содержит алгоритмы и структуры данных, позволяющие программисту избежать многих сложностей, возникающих при использовании традиционных реализаций потоков, таких как POSIX Threads, Windows threads или Boost Threads, в которых создаются отдельные потоки исполнения, синхронизируемые и останавливаемые вручную. Библиотека TBB абстрагирует доступ к отдельным потокам. Все операции трактуются как «задачи», которые динамически распределяются между ядрами процессора. Кроме того, достигается эффективное использование кэша. Программа, написанная с использованием TBB, создаёт, синхронизирует и разрешает графы зависимостей задач в соответствии с алгоритмом. Затем задачи исполняются в соответствии с зависимостями. Этот подход позволяет программировать параллельные алгоритмы на высоком уровне, абстрагируясь от деталей архитектуры конкретной машины.

Message Passing Interface (MPI, интерфейс передачи сообщений) – это библиотека функций, обеспечивающая взаимодействие параллельных процессов с помощью механизма передачи сообщений. Основная цель, которую ставили перед собой разработчики MPI – это обеспечение полной независимости приложений, написанных с использованием MPI, от архитектуры многопроцессорной системы, без какой-либо существенной потери производительности. Следует отметить область, где механизму передачи сообщений нет альтернативы – это обслуживание функционального параллелизма. Если каждый узел выполняет свой собственный алгоритм, существенно отличающийся от того, что делает соседний процессор, а взаимодействие между ними имеет нерегулярный характер, то ничего другого, кроме механизма передачи сообщений, предложить невозможно.

В настоящее время практикуется также гибридное параллельное программирование – использование технологий TBB и MPI совместно. В таком случае удобно применять MPI между узлами и избегать накладных расходов на MPI-коммуникации внутри узла, а TBB использовать внутри узла.

1 Постановка задачи

Дана перестановка чисел от 1 до n. Определите, существуют ли такие два целых числа a и b (1 ≤ a, b ≤ n; a ≠ b), что число (a+b)/2 находится между a и b в заданной перестановке. Вывести все такие пары чисел.

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

Целью курсовой работы является приобретение навыков работы с системами параллельных вычислений. 

Оглавление

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ 4

1 Постановка задачи 6

2 Анализ и описание последовательного метода 7

3 Общее описание архитектуры параллельной вычислительной системы 8

4 Общее описание параллельной программы 9

5 Результаты теоретического анализа эффективности 10

6 Описание последовательной и параллельных программ 12

7 Описание выполненных вычислительных экспериментов 20

ЗАКЛЮЧЕНИЕ 24

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 25

ПРИЛОЖЕНИЕ А 26

ПРИЛОЖЕНИЕ Б 27

ПРИЛОЖЕНИЕ В 28

ПРИЛОЖЕНИЕ Г 29


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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

 

1. Борзунов С. В., Практикум по параллельному программированию: учеб. пособие / С. В. Борзунов, С. Д. Кургалин, А. В. Флегель. — СПб.: БХВ, 2017. — 236 с.

2. Жалнин Р. В., Панюшкина Е. Н., Пескова Е. Е., Шаманаев П. А., Основы параллельного программирования с использованием технологий MPI и OpenMP: учебное пособие / Р.В. Жалнин, Е.Н. Панюшкина, Е. Е. Пескова, П.А. Шаманаев. – Саранск: Изд-во СВМО, 2013. – 78 с.

3. Богачёв К. Ю., Основы параллельного программирования: учебное пособие / К. Ю. Богачёв. 2-е изд. (эл.). М. : БИНОМ. Лаборатория знаний, 2013. 342 с.

4. Мичаев Вос. «Pro TBB»: Учебное пособие. – М.: Изд-во Apress Беркли, Калифорния, 2019. – 807 с.

5. Волосова А.В., Параллельные методы и алгоритмы: учебное пособие/ А.В.Волосова. ‒ М.: МАДИ, Электронные текстовые и графические данные (5,35 Мбайт). 2020. – 176 с.

6. Шпаковский Г.И. Реализация параллельных вычислений: кластеры, многоядерные процесры, грид, квантовые компьютеры. – Минск, БГУ, 2010 г., 155 с.

7. [Электронный ресурс] Т.Ю. Лымарь, Оценка эффективности параллельных алгоритмов URL: https://foreva.susu.ru/courses/fpk_parallel/lectures/pp8.pdf

Вам подходит эта работа?
Похожие работы
Основы программирования
Лабораторная работа Лабораторная
15 Ноя в 08:56
6
0 покупок
Основы программирования
Курсовая работа Курсовая
13 Ноя в 21:31
10
0 покупок
Основы программирования
Тест Тест
11 Ноя в 14:31
41
0 покупок
Другие работы автора
Основы программирования
Лабораторная работа Лабораторная
1 Сен 2023 в 09:53
126
2 покупки
Основы программирования
Лабораторная работа Лабораторная
1 Сен 2023 в 09:50
139
2 покупки
Основы программирования
Лабораторная работа Лабораторная
1 Сен 2023 в 09:46
168
1 покупка
Основы программирования
Лабораторная работа Лабораторная
1 Сен 2023 в 09:42
182
2 покупки
Проектирование
Курсовая работа Курсовая
30 Авг 2023 в 13:47
150
1 покупка
Базы данных
Курсовая работа Курсовая
30 Авг 2023 в 13:44
240
0 покупок
Проектирование систем
Дипломная работа Дипломная
16 Авг 2023 в 11:48
144
0 покупок
Основы программирования
Лабораторная работа Лабораторная
22 Мар 2023 в 19:48
178
0 покупок
Основы программирования
Лабораторная работа Лабораторная
22 Мар 2023 в 19:46
210
1 покупка
Основы программирования
Лабораторная работа Лабораторная
16 Мар 2023 в 19:44
165
0 покупок
Основы программирования
Лабораторная работа Лабораторная
16 Мар 2023 в 19:43
145
0 покупок
Основы программирования
Лабораторная работа Лабораторная
16 Мар 2023 в 19:42
166
0 покупок
Основы программирования
Лабораторная работа Лабораторная
3 Мар 2023 в 22:52
167
0 покупок
Основы программирования
Лабораторная работа Лабораторная
3 Мар 2023 в 22:49
193
0 покупок
Теория графов
Лабораторная работа Лабораторная
1 Мар 2023 в 17:53
163
0 покупок
Основы программирования
Лабораторная работа Лабораторная
28 Фев 2023 в 22:05
163
0 покупок
Проектирование
Лабораторная работа Лабораторная
20 Фев 2023 в 10:11
220
0 покупок
Проектирование систем
Лабораторная работа Лабораторная
18 Фев 2023 в 13:46
181
0 покупок
Темы журнала
Показать ещё
Прямой эфир