Вход

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

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 518623
Дата создания 2022
Мы сможем обработать ваш заказ (!) 22 ноября в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 370руб.
КУПИТЬ

Описание

ВВЕДЕНИЕ

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

В данной курсовой работе необходимо изучить работу параллельных вычислений с помощью таких технологий, как 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

Очень похожие работы
Найти ещё больше
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00481
© Рефератбанк, 2002 - 2024