параллельные алгоритмы лаб_1
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра Вычислительной техники
Отчет
по лабораторной работе №1
по дисциплине «Параллельные алгоритмы и системы»
Тема: Методы оптимизации кода на примере задачи стационарного распределения тепла (двумерной)
Студентка гр. 0321, ФКТИ |
|
|
Преподаватель |
|
|
Санкт-Петербург
2023
Цель работы
Изучить основные методы оптимизации кода.
Задача
Задача стационарного распределения тепла (двумерная)
Подготовка
Все замеры производились на следующей системе:
Процессор: Intel Core i3-10105f, 4 ядра, 8 потоков;
ОЗУ: DDR4 16Gb 2666, 2 канальная;
Компилятор: GCC
Изначальный вариант программы без оптимизации
Исходный код программы lab1_1.c представлен в приложении.
Метрики из приложения Intel VTune:
Однопоточное приложение показывает не самые лучшие результаты по
быстродействию. Посмотрим, что даст распараллеливание вычислений.
Распараллеливание вычислений с помощью OpenMP
Для распараллеливания вычислений воспользуемся библиотекой OpenMP,
которая значительно упрощает организацию и логику работы потоков, что позволяет уменьшить время написания кода и упростить логику программы.
Ниже приведены метрики для 8 потоков.
Время выполнения программы уменьшилось в 8 раз. Уменьшилось количество обращений к основной памяти. Так же уменьшилось количество ошибок предсказания переходов. Немного увеличилось значение CPI.
Время выполнения исходной программы, скомпилированной с ключами O0, O1, O2, O3 в миллисекундах.
O0 |
O1 |
O2 |
O3 |
24940 |
5633 |
4696 |
4650 |
При оптимизации ключами O1, O2, O3 время выполнения исходной программы существенно уменьшилось, но исходя из полученных метрик количество обращений к основной памяти значительно увеличилось.
Вывод:
Использование многопоточности позволяет распараллеливать выполнение задач и использовать доступные ресурсы процессора более эффективно. Это может привести к сокращению времени выполнения программы и увеличению общей производительности системы. Итогом можно считать, что полная оптимизаций уменьшила время выполнения программы в 8 раза, так же уменьшив и другие показатели.
Приложения
Листинг lab 1_1.с
Листинг lab 1_2.с