Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

параллельные алгоритмы лаб_1

.docx
Скачиваний:
6
Добавлен:
20.08.2023
Размер:
213.96 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра Вычислительной техники

 

 

 

 

 

 

 

Отчет

по лабораторной работе №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.с