Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Распараллеливание вычислений с помощью технологии OpenMP

Автор:   •  Декабрь 24, 2023  •  Лабораторная работа  •  1,521 Слов (7 Страниц)  •  55 Просмотры

Страница 1 из 7

Министерство науки и высшего образования Российской Федерации федеральное государственное бюджетное образовательное учреждение[pic 1]

высшего профессионального образования

«Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)»

         (МГТУ им. Н.Э. Баумана)        

ФАКУЛЬТЕТ «Робототехники и комплексной автоматизации» КАФЕДРА        «Системы автоматизированного проектирования (РК-6)»

ОТЧЕТ О ВЫПОЛНЕНИИ ЛАБОРАТОРНОЙ РАБОТЫ

по дисциплине «Архитектура параллельных вычислительных систем»

Студент:        Днепров Модест Анатольевич[pic 2]

Группа:        РК6-12М

[pic 3]

Тип задания:        лабораторная работа[pic 4][pic 5]

Тема:        Распараллеливание вычислений с помощью технологии OpenMP

Студент Преподаватель


[pic 6]

подпись, дата

[pic 7]

подпись, дата


Днепров М.А.

Фамилия, И.О.

Спасёнов А.Ю.

Фамилия, И.О.

Москва, 2023

Содержание

1.        Задание на лабораторную работу        3

2.        Описание части программы для распараллеливания        4

3.        Возможности OpenMP        6

4.        Ускорение после распараллеливания        7

5.        Визуализация ускорения        8

  1. Задание на лабораторную работу

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

  1. Ускорение работы программы
  2. Эффективность распараллеливания ( в зависимости от числа используемых процессоров)
  3. Сложность задачи
  4. Значение функции изоэффективности

Визуализировать ускорение работы программы и продемонстрировать результат моделирования в графическом виде.

  1. Описание части программы для распараллеливания

Мною было выбрано 2 участка программы для применения технологии OpenMP:

  1. Функция gauss, ответственная за решение системы линейных уравнений методом Гаусса.

void gauss(double** matrix, double sol_cur[], double sol_next[]) {

        double** matr = new double* [N];

#pragma omp parallel for collapse(2)

        for (int i = 0; i < N; i++)

                matr[i] = new double[N];

        for (int i = 0; i < N; i++) {

                for (int j = 0; j < N; j++) {

                        matr[i][j] = matrix[i][j];

                }

        }

        // Прямой ход метода Гаусса

        for (int j = 0; j < N; j++) {

                for (int i = j + 1; i < N; i++) {

                        double koef = matr[i][j] / matr[j][j];

                        for (int k = j; k < N; k++) {

                                matr[i][k] -= koef * matr[j][k];

                        }

                        sol_cur[i] -= koef * sol_cur[j];

                }

        }

        // Обратный ход метода Гаусса

        for (int i = N - 1; i >= 0; i--) {

                double s = 0.0;

...

Скачать:   txt (10.7 Kb)   pdf (410.5 Kb)   docx (1.5 Mb)  
Продолжить читать еще 6 страниц(ы) »
Доступно только на Essays.club