Тема: Сравнение параллельных методов решения больших и сверхбольших разреженных СЛАУ на CPU и GPU
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ 6
ВВЕДЕНИЕ 7
1 ОСОБЕННОСТИ РЕШЕНИЯ БОЛЬШИХ И СВЕРХБОЛЬШИХ
РАЗРЕЖЕННЫХ СЛАУ 9
1.1 Разреженные матрицы 9
1.2 Хранение разреженных матриц 11
1.3 Метод решения разреженных СЛАУ. Стабилизированный метод
бисопряженных градиентов 12
1.4 Решение на CPU 15
1.5 Решение на GPU 16
1.6 Вывод по разделу 19
2 РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ ЗАМЕРОВ ЭФФЕКТИВНОСТИ
РЕШЕНИЯ СЛАУ 21
2.1 Алгоритм реализации общий для CPU и GPU 21
2.2 Реализация программы для решения на CPU 25
2.3 Реализация программы для решения на GPU 26
2.4 Вывод по разделу 28
3 ПРОВЕДЕНИЕ ВЫЧИСЛИТЕЛЬНЫХ ЭКСПЕРИМЕНТОВ 29
3.1 Оборудование, исходные данные и ожидаемые результаты 29
3.2 Точность вычислений 32
3.3 Скорость вычислений 47
3.4 Вывод по разделу 49
ЗАКЛЮЧЕНИЕ 50
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 51
ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ 1 Код программы 54
📖 Введение
Существует большое количество примеров задач [6], в процессе решения которых возникает необходимость решения разреженные СЛАУ:
• проектирование и эксплуатация электротехнических устройств;
• построение математической модели, связывающей функциональной зависимостью некоторые параметры x, y исследуемого объекта на основании полученных в результате эксперимента данных;
• исследование процессов в системах, математические модели которых строятся в классе дифференциальных уравнений в частных производных;
• отображение сущности физических процессов;
• фильтрация жидкости к скважинам в двухмерной области произвольной формы;
• экономических задач [8];
• гидродинамическое моделирования процессов нефтедобычи и т. д.
Решение больших и сверхбольших разреженных СЛАУ допускает своеобразного подхода к решению по сравнению с плотными СЛАУ. Даже сверхбольшие разреженные матрицы, при правильном подходе способны занимать незначительное место в памяти устройств. Операции с разреженными матрицами так же имеют свои преимущества над операциями с плотными матрицами. При выполнении операций над разреженными матрицами, стоит учитывать только ненулевые элементы.
С учетом развития идей применения видеопроцессоров для проведения математических вычислений, возникает вопрос эффективности графического процессора. GPU имеет ряд преимуществ перед CPU [1], но так же и ряд
недостатков, обостряющих вопрос эффективности применения данных процессоров для решения больших и сверхбольших разреженных СЛАУ.
Целью данной работы является разработка программы, выполняющей решение на CPU и GPU с последующим анализом эффективности применения конкретного вычислительного устройства, как точность, время вычислений, время инициализации и т. д.
Для достижения цели необходимо решить следующие задачи:
1) исследовать способы хранения разреженных матриц в памяти компьютера и выбрать оптимальный;
2) выбрать оптимальный для проведения анализа метод решения для разреженных СЛАУ;
3) подготовить исходные данные для обработки (матрицы);
4) изучить особенности реализации программы для каждого вида процессора и разработать программу;
5) произвести анализ результатов экспериментов. ..
✅ Заключение
Для выбранного метода были созданы две реализации для CPU с использованием OpenMP и для GPU с использованием библиотек CUDA, cuSparce и cuBLAS. Для реализации метода решения СЛАУ были написаны вспомогательные классы:
• Vector – вектор с распараллеливанием операций вычитания, скалярного умножения и нормы;
• CSRMatrix – разряженная матрица с распараллеливанием операции умножения на вектор.
Для проведения вычислительных экспериментов были использованы разреженные матрицы из библиотеки SuiteSparcse Matrix Collection, полученные из задач разных типов.
Были проведены вычислительные эксперименты для сравнения скорости и точности работы выбранного метода для матриц разных типов.
Для точности double были получены следующие результаты: время решения задачи на GPU меньше в 5 раз, чем на CPU. Разрыв становится больше при увеличении размера матрицы.
Как и предполагалось, разница между временем решения на CPU для double и float оказалась незначительной, но при этом вычисления с точностью float оказались менее устойчивыми из-за погрешности вычислений.
Разница между временем решения на GPU для точности float и double оказалось менее значительным, чем предполагалось и выявление причин требует дополнительных исследований.





