
- •Аннотация
- •Оглавление
- •Введение
- •1. Графические ускорители – как эффективный путь повышения производительности вычислительных архитектур
- •1.1. Этапы развития графических ускорителей и их устройство
- •1.1.1. Основная терминология и устройство графического адаптера
- •1.1.2. Архитектура современныхGpu
- •1.2. Подход к использованию графических ускорителей для вычислений общего назначения
- •1.2.1.GpgpUподход
- •1.2.2. Гибридные вычислительные системы
- •1.2.3. Программная модельCuda
- •1.3.OpenAcc. Новейший стандарт разработкиGpgpu-приложений
- •1.3.1. Возможности стандарта
- •1.3.2. Модель выполнения
- •1.3.3. Модель памяти
- •1.4. Выводы по разделу 1
- •2. Постановка задачи магистерской диссертации
- •2.1. Цели и задачи исследования
- •2.2. Математическая постановка задачи решения трехдиагональной системы линейных уравнений методом блочной прогонки
- •2.3. Разработка параллельного алгоритма для решения трехдиагональной системы линейных уравнений
- •2.4. Выводы по разделу 2
- •3. Реализация и исследование разработанного алгоритма
- •3.1. Структура параллельной программы и особенности реализации
- •3.2. Результаты тестирования
- •3.3. Анализ результатов
- •3.4. Выводы по разделу 3
- •Заключение
- •Список использованных источников
- •Приложение 1. История развития графических ускорителей и их устройство
- •1.1. Устройство графического адаптера
- •1.2. Рынок графических адаптеров
- •1.3. АрхитектураGpugt200
- •1.4. Современное положение дел
- •Приложение 2. Основная часть программного кода разработанного приложения
3.3. Анализ результатов
В результате тестирования разработанной программной реализации можно сделать вывод, что, чем мельче делится система на полосы (до определённого момента – m=32) и чем больше число блоков нитей, тем эффективнее происходит использование вычислительных ресурсов ускорителя. Значениеm=32 является оптимальным, т.к. при дальнейшем уменьшении полосы (m≤16) наблюдалось снижение ускорения параллельного решения. При тестировании наблюдался более высокий рост ускорения в случае большого размера задачи (n=16×106) при увеличении числа блоков нитей, чем при малом размере задачи.
Первый вариант реализации не предусматривал экономии ресурсов из-за неэффективного выделения памяти, в следствии чего, не удалось решить систему порядка n≥14000. Поэтому, была разработана улучшенная реализация, в которой память не выделялась под нулевые элементы. Это позволило добиться существенной экономии ресурсов, например, в улучшенной модификации при решении системы размером 2×106память ускорителя была загружена на 35%, в то время как, в обычной реализации память ускорителя была исчерпана при решении системы порядкаn=13500.
При проведении экспериментов было найдено оптимальное число нитей в блоке – 128 нитей на каждый блок. При значении 8 нитей на блок время вычислений ухудшилось в среднем на 4%. Суммарное число нитей оставалось неизменным.
В результате экспериментов были выявлены следующие положительные и отрицательные стороны применения графических ускорителей:
Преимущества
огромное количество нитей, работающих параллельно;
возможность получить хорошие результаты на современном домашнем ПК;
GPU– это со‑процессор, который позволяет разгрузить центральный процессор от вычислений, но не освободить его полностью;
Недостатки
объём памяти ускорителя меньше объёма памяти хоста, в следствие чего, требуется внимательный подход к выделению памяти;
накладные затраты на обмен данными между хостом и ускорителем;
низкая загруженность графического процессора.
3.4. Выводы по разделу 3
В данном разделе было описано деление разработанной программы на модули, пояснены этапы работы программы. В этом разделе приведены практические результаты исследования в форме графиков времени и ускорения параллельного решения, а также загруженности памяти ускорителя для разных реализаций. Проведен анализ результатов.
Заключение
Основные результаты работы заключаются в следующем:
Проведено исследование архитектуры современных графических процессоров и этапов её развития, в результате которого можно сделать вывод о том, что современные графические процессоры за последние 7-10 лет достигли высоких показателей производительности и получили широкое распространение;
Рассмотрено влияние, оказываемое графическими ускорителями на развитие высокопроизводительных систем, в результате чего можно сказать, что гибридные системы, в которых используются графические ускорители, занимают высшие позиции в ведущих мировых рейтингах, что свидетельствует от преимуществах гибридного подхода;
Изучены современные технологии программирования GPU, в результате чего можно сделать вывод о том, что данные технологии сделали большой шаг в развитии от низкоуровневых средств, которые сдерживали применениеGPU, к высокоуровневым, которые облегчают процесс разработки программы;
Проведено исследование средств графических процессоров для организации эффективного решения двухточечной краевой задачи методом параллельной блочной прогонки, в результате чего можно сделать вывод о том, что существует некоторый оптимальный диапазон ширины полосы матрицы (от 16 до 64), на котором достигается максимальное ускорение для любой размерности системы;
Написано две программных реализации данного метода, отличающиеся способами использования ресурсов графического ускорителя;
Проведено теоретическое исследование, касающееся взаимосвязи CPUиGPUво время вычислений, которое было подкреплено практическими результатами во время написания и тестирования программной реализации метода.