🗊 Презентация Примеры использования OpenMP. Вычисление определенного интеграла

Нажмите для полного просмотра!
Примеры использования OpenMP. Вычисление определенного интеграла, слайд №1 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №2 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №3 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №4 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №5 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №6 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №7 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №8 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №9 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №10 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №11 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №12 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №13 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №14 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №15 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №16 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №17 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №18 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №19 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №20 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №21 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №22 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №23 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №24 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №25 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №26 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №27 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №28 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №29 Примеры использования OpenMP. Вычисление определенного интеграла, слайд №30

Содержание

Вы можете ознакомиться и скачать презентацию на тему Примеры использования OpenMP. Вычисление определенного интеграла. Доклад-сообщение содержит 30 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Примеры использования OpenMP
Описание слайда:
Примеры использования OpenMP

Слайд 2


Вычисление определенного интеграла
Описание слайда:
Вычисление определенного интеграла

Слайд 3


Метод прямоугольников
Описание слайда:
Метод прямоугольников

Слайд 4


Последовательность выполнения Последовательная версия. Базовая реализация алгоритма интегрирования Эффект применения компилятора Использование...
Описание слайда:
Последовательность выполнения Последовательная версия. Базовая реализация алгоритма интегрирования Эффект применения компилятора Использование предварительных вычислений сложных функций Алгоритмическая оптимизация Параллельная версия. Варианты распараллеливание базового алгоритма Распараллеливание оптимизированного алгоритма

Слайд 5


Базовый алгоритм Должен содержать код, несколько раз запускающий тестируемую реализацию алгоритма вычислений. Должен вычислять минимальное,...
Описание слайда:
Базовый алгоритм Должен содержать код, несколько раз запускающий тестируемую реализацию алгоритма вычислений. Должен вычислять минимальное, максимальное и среднее времена ее работы. Должен представлять результаты вычислений. Параметры вычислений задаются в программе. Провести анализ использования разных режимов компиляции.

Слайд 6


Распараллеливание базового алгоритма Геометрическая декомпозиция данных (разделение данных на части и применение к ним одного и того же алгоритма)....
Описание слайда:
Распараллеливание базового алгоритма Геометрическая декомпозиция данных (разделение данных на части и применение к ним одного и того же алгоритма). Локализация данных. Анализ результатов (гонка данных).

Слайд 7


Геометрическая декомпозиция данных По столбцам По строкам Блочно
Описание слайда:
Геометрическая декомпозиция данных По столбцам По строкам Блочно

Слайд 8


Оптимизация базового алгоритма Предварительное вычисление сложных математических функций (sin, cos, exp и др.). Алгоритмическая оптимизация...
Описание слайда:
Оптимизация базового алгоритма Предварительное вычисление сложных математических функций (sin, cos, exp и др.). Алгоритмическая оптимизация (исключение многократного вычисления одних и тех же данных, предварительные расчеты). Буферизация.

Слайд 9


Распараллеливание оптимизированного алгоритма Распараллеливание с учетом уже полученных результатов: В данной задаче наилучшие результаты дает...
Описание слайда:
Распараллеливание оптимизированного алгоритма Распараллеливание с учетом уже полученных результатов: В данной задаче наилучшие результаты дает распараллеливание с разделением сетки интегрирования по столбцам (внешний цикл). Распараллелить основные вычислительные циклы.

Слайд 10


Пример выполнения вычислений
Описание слайда:
Пример выполнения вычислений

Слайд 11


Структура программы
Описание слайда:
Структура программы

Слайд 12


Пример выполнения вычислений Базовый алгоритм
Описание слайда:
Пример выполнения вычислений Базовый алгоритм

Слайд 13


Основная программа int main () { int i; double time, res, min_time, max_time, avg_time; int numbExp = 10; min_time = max_time = avg_time =...
Описание слайда:
Основная программа int main () { int i; double time, res, min_time, max_time, avg_time; int numbExp = 10; min_time = max_time = avg_time = experiment(&res); for(i = 0; i < numbExp - 1; i ++) { time = experiment(&res); avg_time += time; if(max_time < time) max_time = time; if(min_time > time) min_time = time; } printf(“Интеграл равен: %lf; \n", res); printf(«Время выполнения: %lf; %lf; %lf \n", avg_time / numbExp, min_time, max_time); return 0; }

Слайд 14


Функция experiment double experiment(double *res) { double stime, ftime; double a1 = 0.0 ; double a1 = a2 = 0.0 ; double b1 = 16.0; double b2 = 16.0;...
Описание слайда:
Функция experiment double experiment(double *res) { double stime, ftime; double a1 = 0.0 ; double a1 = a2 = 0.0 ; double b1 = 16.0; double b2 = 16.0; double h = 0.001; stime = omp_get_wtime( ); integral(a1, b1, a2, b2, h, res); ftime = omp_get_wtime( ); return (ftime - stime); }

Слайд 15


Функция integral void integral(const double a1, const double b1, const double a2, const double b2, const double h, double *res){ int i, j, n1, n2;...
Описание слайда:
Функция integral void integral(const double a1, const double b1, const double a2, const double b2, const double h, double *res){ int i, j, n1, n2; double sum, x, y; n1 = (int)((b1 - a1) / h); n2 = (int)((b2 - a2) / h); sum = 0.0; for( i = 0; i < n1; i++) { for(j = 0; j < n2; j++) { x = a1 + i * h + h / 2; y = a2 + j * h + h / 2; sum += ((exp(sin(x * PI) * cos(y * PI)) + 1) / ((b1 - a1) * (b2 - a2))) * h * h; } } *res = sum; }

Слайд 16


Пример выполнения вычислений Базовый алгоритм - распараллеливание
Описание слайда:
Пример выполнения вычислений Базовый алгоритм - распараллеливание

Слайд 17


Распараллеливание по столбцам #pragma omp parallel for for(i = 0; i < n1; i++) { for(j = 0; j < n2; j++) { x = a1 + i * h + h / 2; y = a2 + j * h + h...
Описание слайда:
Распараллеливание по столбцам #pragma omp parallel for for(i = 0; i < n1; i++) { for(j = 0; j < n2; j++) { x = a1 + i * h + h / 2; y = a2 + j * h + h / 2; sum += ((exp(sin(x * PI) * cos(y * PI)) + 1) / ((b1 - a1) * (b2 - a2))) * h * h; } }

Слайд 18


Распараллеливание по столбцам с учетом data race #pragma omp parallel for private (x, y, j) reduction(+: sum) for(i = 0; i < n1; i++) { for(j = 0; j...
Описание слайда:
Распараллеливание по столбцам с учетом data race #pragma omp parallel for private (x, y, j) reduction(+: sum) for(i = 0; i < n1; i++) { for(j = 0; j < n2; j++) { x = a1 + i * h + h / 2; y = a2 + j * h + h / 2; sum += ((exp(sin(x * PI) * cos(y * PI)) + 1) / ((b1 - a1) * (b2 - a2))) * h * h; } }

Слайд 19


Распараллеливание по строкам for(i = 0; i < n1; i++) { #pragma omp parallel for private (x, y) reduction(+: sum) for(j = 0; j < n2; j++) { x = a1 + i...
Описание слайда:
Распараллеливание по строкам for(i = 0; i < n1; i++) { #pragma omp parallel for private (x, y) reduction(+: sum) for(j = 0; j < n2; j++) { x = a1 + i * h + h / 2; y = a2 + j * h + h / 2; sum += ((exp(sin(x * PI) * cos(y * PI)) + 1) / ((b1 - a1) * (b2 - a2))) * h * h; } }

Слайд 20


Блочное разделение данных omp_set_nested(true); #pragma omp parallel for for (i = 0; i < n1; i++) { #pragma omp parallel for private (x, y)...
Описание слайда:
Блочное разделение данных omp_set_nested(true); #pragma omp parallel for for (i = 0; i < n1; i++) { #pragma omp parallel for private (x, y) reduction(+: sum) for(j = 0; j < n2; j++) { x = a1 + i * h + h / 2; y = a2 + j * h + h / 2; sum += ((exp(sin(x * PI) * cos(y * PI)) + 1) / ((b1 - a1) * (b2 - a2))) * h * h; } }

Слайд 21


Результаты вычислений
Описание слайда:
Результаты вычислений

Слайд 22


Влияние параметров распараллеливания циклов
Описание слайда:
Влияние параметров распараллеливания циклов

Слайд 23


Пример выполнения вычислений Оптимизированный алгоритм – распараллеливание
Описание слайда:
Пример выполнения вычислений Оптимизированный алгоритм – распараллеливание

Слайд 24


Использование предварительных вычислений сложных функций void integral(const double a1, const double b1, const double a2, const double b2, const...
Описание слайда:
Использование предварительных вычислений сложных функций void integral(const double a1, const double b1, const double a2, const double b2, const double h, double *res) { int i, j, n1, n2; double sum, x, y, *sinx, *cosy; n1 = (int)((b1 - a1) / h); n2 = (int)((b2 - a2) / h); sum = 0.0; sinx = new double [n1]; cosy = new double [n2]; for(i = 0; i < n1; i++) { x = a1 + i * h + h / 2; sinx[i] = sin(x * PI); } for(j = 0; j < n2; j++) { y = a2 + j * h + h / 2; cosy[j] = cos(y * PI); } for(i = 0; i < n1; i++) { for(j = 0; j < n2; j++) {sum += ((exp(sinx[i] * cosy[j]) + 1) / ((b1 - a1) * (b2 - a2))) * h * h; } } *res = sum; delete [] sinx; delete [] cosy; }

Слайд 25


Результаты вычислений
Описание слайда:
Результаты вычислений

Слайд 26


Загрузка ядер процессора
Описание слайда:
Загрузка ядер процессора

Слайд 27


Пример выполнения вычислений Вычисление интеграла методом Монте-Карло
Описание слайда:
Пример выполнения вычислений Вычисление интеграла методом Монте-Карло

Слайд 28


Метод Монте-Карло
Описание слайда:
Метод Монте-Карло

Слайд 29


Функция integral void integral(const double a1, const double b1, const double a2, const double b2, const double h, double *res) { int n=0; double...
Описание слайда:
Функция integral void integral(const double a1, const double b1, const double a2, const double b2, const double h, double *res) { int n=0; double sum, x, y, f; for(long int i=1;i

Слайд 30


Вычисление значений функции #define nMax 1000000 #define Mrand 10000 #define Fmax 0.015 double func(double x, double y, const double a1, const double...
Описание слайда:
Вычисление значений функции #define nMax 1000000 #define Mrand 10000 #define Fmax 0.015 double func(double x, double y, const double a1, const double b1, const double a2, const double b2) { return (exp(sin(x * PI) * cos(y * PI)) + 1)/ ((b1 - a1) * (b2 - a2)); }



Похожие презентации
Mypresentation.ru
Загрузить презентацию