Тип работы:
Предмет:
Язык работы:


ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ

Работа №149749

Тип работы

Бакалаврская работа

Предмет

математика

Объем работы34
Год сдачи2020
Стоимость4700 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
43
Не подходит работа?

Узнай цену на написание


Реферат
ВВЕДЕНИЕ 3
1 Постановка задачи 5
2 Последовательные алгоритмы решения систем линейных алгебраических
уравнений 8
2.1 Метод Гаусса 8
2.2 Метод Якоби 9
2.3 Метод Гаусса-Зейделя 10
2.4 Сравнение последовательных алгоритмов 10
3 Распараллеливание метода Гаусса решения систем линейных
алгебраических уравнений 14
3.1 Выделение информационных зависимостей 14
3.2 Масштабирование и распределение подзадач по процессам 15
3.3 Используемые MPI-функции 16
3.4 Общая память 19
3.5 Результаты распараллеливания метода Гаусса 20
4 Распараллеливание итерационных методов решения систем линейных
алгебраических уравнений 23
4.1 Параллельный алгоритм решения СЛАУ методом Якоби 23
4.2 Исследование эффективности распараллеливания метода Якоби для систем с
распределенной памятью 24
4.3 Особенности использования общей памяти при распараллеливании вычислений 25
4.4 Исследование эффективности распараллеливания метода Якоби для систем с общей
памятью 25
ЗАКЛЮЧЕНИЕ 28
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 29
ПРИЛОЖЕНИЯ 31

Применение параллельных вычислительных систем является стратегическим направлением развития вычислительной техники [2]. Это вызвано не только принципиальным ограничением максимально возможного быстродействия последовательных ЭВМ, но и практически постоянным наличием вычислительных задач, для решения которых возможностей существующих средств вычислительной техники недостаточно.
Наличие таких задач обусловлено возможностью изучать явления, которые являются либо слишком сложными для исследования аналитическими методами, либо слишком дорогостоящими или опасными для экспериментального изучения, а также быстрым ростом сложности объектов моделирования, необходимостью управления сложными промышленными и технологическими процессами в режиме реального времени и ростом числа задач, для решения которых необходимо обрабатывать гигантские объемы информации. Для подобных задач применение параллельных вычислений является зачастую просто необходимым.
Организация параллельности вычислений осуществляется, в основном, за счет многопроцессорности, что позволяет в один и тот же момент выполнять одновременно несколько операций обработки данных. Если осуществить разделение применяемого алгоритма на информационно независимые части и организовать выполнение каждой части вычислений на разных процессорах, можно достичь ускорения процесса решения вычислительной задачи и выполнить необходимые вычисления с меньшими затратами времени.
На сегодняшний день наиболее используемыми и наиболее эффективными технологиями распараллеливания являются OpenMP (Open Multi-Processing) и MPI (Message Passing Interface) [3]. При использовании интерфейса обмена сообщениями MPI обмен данными между различными процессами в программе осуществляется с помощью механизма передачи и 3
приемки сообщений [1]. При создании параллельных программ, предназначенных для многопроцессорных вычислительных систем с общей памятью используются методы многопроточного программирования с помощью директив OpenMP, являющимися специальными директивами для компилятора [4]. Они создают и организуют выполнение параллельных процессов (нитей), а также обмен данными между процессами.
Данные технологии часто применяются на системах с различными организациями взаимодействия между вычислительными узлами вычислительных систем и имеют свои недостатки и достоинства, однако на вычислительных системах, организация которых позволяет это сделать, данные технологии объединяются для достижения большей продуктивности параллельных вычислений, используя достоинства каждой из технологий.
В данной работе рассматриваются применение технологий распараллеливания на примере конкретной задачи, различные их реализации, и приводится сравнение и анализ полученных результатов, исследований и проведенных опытов.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


По результатам данной работы были рассмотрены и изучены технологии организации параллельных вычислений. В ходе работы был рассмотрен метод Г аусса, итерационные методы Якоби и Гаусса - Зейделя.
Для решения поставленной задачи были составлены последовательные и параллельные программы с применением технологий MPI и OpenMP.
Для реализации параллельных программы с использованием технологии MPI была рассмотрена ленточная схема распределения данных между вычислительными узлами. Были проведены тесты на малом кластере СФУ и на персональном ноутбуке. Во всех тестовых расчетах было получено ускорения вычислений при использовании технологии MPI.
Для технологии OpenMP так же проводились тесты на двух вычислительных системах. Полученные результаты не однозначные, в некоторых случаях, при увеличении узлов не было достигнуто сокращение работы параллельной программы по сравнению с последовательной.


1. Антонов А.С. Параллельное программирование с использованием технологии MPI: учебное пособие / А. С. Антонов. - Москва: Изд-во МГУ, 2004. - 71с.
2. Гергель В.П. Теория и практика параллельных вычислений: учебное пособие / В. П. Гергель. - Москва: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2007. - 423 с.
3. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002.
4. Карелова Е. Д. Основы многопоточного и параллельного
программирования : учебное пособие для студентов вузов, обучающихся по направлениям "Прикладная математика и информатика" и "Фундаментальная информатика и информационные технологии" / Е. Д. Карелова ; Сиб. федер. ун-т, Ин-т математики и фундамент. информатики. - 2016
5. Левин М.П. Параллельное программирование с использованием OpenMP: учебное пособие /М. П. Левин. - М.: Интернет-Университет Информационных Технологий; БИНОМ, Лаборатория знаний, 2012. - 118 с.
6. Миллер Р. Последовательные и параллельные алгоритмы: Общий подход / Р. Миллер, Л. Боксер; Пер. с англ. - М.: БИНОМ, Лаборатория знаний, 2013. - 406с.
7. Объектно-ориентированное программирование на C++: учебник / И.В. Баранова, С.Н. Баранов, И.В. Баженова [и др.]. - Красноярск: Сиб. федер. ун-т, 2019. - 288с.
8. Распопов В.В. Численные методы: учебное пособие / В. Е. Распопов, М. М. Клунникова, В. А. Сапожников; Красноярский университет. Математический факультет. - Красноярск: Красноярский университет [КрасГУ], 2006. - 182 с.
9. Самарский А.А. Численные методы: учебное пособие / А. А. Самарский. - Москва: Наука. Главная редакция физико-математической литературы, 1989. - 432 с.


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ