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

парал прогр / 2020-2021_311_ParalRasprProgram_Gnosheva_work01

.pdf
Скачиваний:
9
Добавлен:
18.08.2022
Размер:
311.1 Кб
Скачать

Архитектура компьютера

8 гб ОП, процессор CISC 4 ядра, 8 логических процессоров

Вариант 1.

В работе изучалось использование потоков OMP и операции редукции, приводящих к уменьшению времени вычисления интегралов.

Интеграл решался по методу треугольников.

Последовательная версия

Для реализации последовательной версии был создан проект - консольное приложение с именем 01_seq в рамках решения numericIntegral,затем файл с именем main_s.cpp содержащий следующее:

1) Переменные:

2) Цикл запуска экспериментов для уточнения замеров времени:

3) Функция integral() для вычисления приближенного значения интеграла:

4) Функция experiment(), которая задает границы интегрирования и вызывает функцию вычисления интеграла:

Как видно на скриншоте, шаг h был подобран со значением 0.000001

Сравним время выполнения алгоритма численного интегрирования с использованием разных режимов.

Режим Debug

h

execution time

0.001

0.0001; 0; 0.001

0.00001

0.0027; 0.002; 0.003

0.000001

0.0259; 0.025; 0.027

 

 

Режим Release

h

 

execution time

0.001

 

0; 0; 0

0.00001

 

0.0023; 0.002; 0.003

 

 

 

0.000001

 

0.0205; 0.019; 0.024

 

 

 

 

Параллельная версия

В рамках решения numericIntegral был создан новый проект с названием 01_omp и файл main.cpp, который содержит в себе точную копию файла main_s.cpp из предыдущего проекта.

Для того, чтобы распараллелить работу в код , перед циклом, была добавлена строка #pragma omp parallel for