Тема: ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ РЕШЕНИЯ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
ВВЕДЕНИЕ 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
📖 Введение
Наличие таких задач обусловлено возможностью изучать явления, которые являются либо слишком сложными для исследования аналитическими методами, либо слишком дорогостоящими или опасными для экспериментального изучения, а также быстрым ростом сложности объектов моделирования, необходимостью управления сложными промышленными и технологическими процессами в режиме реального времени и ростом числа задач, для решения которых необходимо обрабатывать гигантские объемы информации. Для подобных задач применение параллельных вычислений является зачастую просто необходимым.
Организация параллельности вычислений осуществляется, в основном, за счет многопроцессорности, что позволяет в один и тот же момент выполнять одновременно несколько операций обработки данных. Если осуществить разделение применяемого алгоритма на информационно независимые части и организовать выполнение каждой части вычислений на разных процессорах, можно достичь ускорения процесса решения вычислительной задачи и выполнить необходимые вычисления с меньшими затратами времени.
На сегодняшний день наиболее используемыми и наиболее эффективными технологиями распараллеливания являются OpenMP (Open Multi-Processing) и MPI (Message Passing Interface) [3]. При использовании интерфейса обмена сообщениями MPI обмен данными между различными процессами в программе осуществляется с помощью механизма передачи и 3
приемки сообщений [1]. При создании параллельных программ, предназначенных для многопроцессорных вычислительных систем с общей памятью используются методы многопроточного программирования с помощью директив OpenMP, являющимися специальными директивами для компилятора [4]. Они создают и организуют выполнение параллельных процессов (нитей), а также обмен данными между процессами.
Данные технологии часто применяются на системах с различными организациями взаимодействия между вычислительными узлами вычислительных систем и имеют свои недостатки и достоинства, однако на вычислительных системах, организация которых позволяет это сделать, данные технологии объединяются для достижения большей продуктивности параллельных вычислений, используя достоинства каждой из технологий.
В данной работе рассматриваются применение технологий распараллеливания на примере конкретной задачи, различные их реализации, и приводится сравнение и анализ полученных результатов, исследований и проведенных опытов.
✅ Заключение
Для решения поставленной задачи были составлены последовательные и параллельные программы с применением технологий MPI и OpenMP.
Для реализации параллельных программы с использованием технологии MPI была рассмотрена ленточная схема распределения данных между вычислительными узлами. Были проведены тесты на малом кластере СФУ и на персональном ноутбуке. Во всех тестовых расчетах было получено ускорения вычислений при использовании технологии MPI.
Для технологии OpenMP так же проводились тесты на двух вычислительных системах. Полученные результаты не однозначные, в некоторых случаях, при увеличении узлов не было достигнуто сокращение работы параллельной программы по сравнению с последовательной.





