Полуянов С.В.

24
Распараллеливание построения среднеквадратических приближений сплайнами восьмого порядка аппроксимации Полуянов С.В.

description

Распараллеливание построения среднеквадратических приближений сплайнами восьмого порядка аппроксимации. Полуянов С.В. Введение. Пусть функция f задана на промежутке [ a , b ] с погрешностями. - PowerPoint PPT Presentation

Transcript of Полуянов С.В.

Page 1: Полуянов С.В.

Распараллеливание построения среднеквадратических

приближений сплайнами восьмого порядка аппроксимации

Полуянов С.В.

Page 2: Полуянов С.В.

Введение

• Пусть функция f задана на промежутке [a, b] с погрешностями.

• Будем строить среднеквадратическое приближение третьей высоты, что позволит сгладить функцию и её производные вплоть до третьей.

Page 3: Полуянов С.В.

Введение

• Приближение ищется из условия • На промежутке [a, b] построим

равномерную сетку узлов с шагом h:

• Тогда приближение задаётся по формуле:

• Коэффициенты находятся из условия

Page 4: Полуянов С.В.

Введение

• Для нахождения коэффициентов необходимо решить систему MC=F, где

Page 5: Полуянов С.В.

Построение базисных сплайнов

• Приближение на промежутке строится по формуле:

• Предположим, что носитель базисных сплайнов .

• Базисные сплайны найдём из условия для .

Page 6: Полуянов С.В.

Построение базисных сплайновПолучаем систему уравнений.

Page 7: Полуянов С.В.

Построение базисных сплайновРешая систему, находим формулы базисных сплайнов.

Page 8: Полуянов С.В.

Графики базисных сплайнов

Page 9: Полуянов С.В.

Построение системы линейных алгебраических уравнений

• Строим среднеквадратическое приближение по формуле

• Для нахождения коэффициентов приходим к системе MC=F.

• M – матрица грамма, симметрична и положительно определена.

Page 10: Полуянов С.В.

Построение матрицы• Матрица M состоит из 16 блоков

• Каждый блок трёхдиагонален и имеет следующий вид:

Page 11: Полуянов С.В.

Построение матрицы

• Элементы блока вычисляются по формулам:

• Положив h=1/N, вычислим элементы матрицы.

Page 12: Полуянов С.В.

Построение матрицы• Схематично матрица M имеет следующий вид:

Матрица M[100x100], чёрным цветом обозначены ненулевые элементы

Page 13: Полуянов С.В.

Вычисление правой части

• Правая часть имеет вид

• Каждый из векторов

• Его элементы определяются по формулам:

Page 14: Полуянов С.В.

Вычисление правой части

• Для нахождения элементов F вычислим соответствующие интегралы, используя составную формулу Симпсона численного интегрирования. Разбивая отрезок интегрирования [a,b] на N равных частей, обозначим h=1/N и вычислим интегралы по формуле:

где

• Погрешность интегрирования определяется по формуле:

Page 15: Полуянов С.В.

Решение системы линейных алгебраических уравнений

• Для решения системы MC=F будем использовать одношаговый циклический процесс, также известный, как итерационный метод Зейделя. Суть его заключается в том, что в j-ом уравнении в правую часть переносятся все члены, содержащие c[j], j>i:

Page 16: Полуянов С.В.

Решение системы линейных алгебраических уравнений

• Обозначим за D - матрицу, у которой на главной диагонали стоят соответствующие элементы матрицы M, а все остальные нули; матрицы U и L содержат верхнюю и нижнюю треугольные части M:

Page 17: Полуянов С.В.

Решение системы линейных алгебраических уравнений

• После выбора начального приближения, процесс строится по формуле:

• Формулу можно привести к каноническому виду последовательных приближений :

• Из этой записи видно, что метод Зейделя является модификацией метода Якоби, в котором каждая итерация имеет вид C=BC+G. Отличие заключается в том, что новые значения используются сразу по мере получения, в отличие от простого итерационного процесса, в котором они используются только на следующей итерации.

Page 18: Полуянов С.В.

Решение системы линейных алгебраических уравнений

• Итак, i-я компонента (k+1)-го приближения строится по формуле:

• Известно, что метод Зейделя сходится, если исходная матрица M является симметричной и положительно определённой.

Page 19: Полуянов С.В.

Реализация и распараллеливание

• Реализовано в C++ с использованием OpenMP• Распараллеливание осуществлено с помощью прагмы

#pragma omp parallel for• Распараллелен цикл вычисления неграничных

элементов блоков вектора F• Распараллеливание вычисления каждого интеграла

излишне• Вследствие вычислительной схемы итерационного

процесса Зейделя распараллеливание внешнего цикла невозможно, распараллеливание внутренней операции суммирования ухудшало производительность

Page 20: Полуянов С.В.

Реализация и распараллеливание

• Тесты показали, что при увеличении дробления области интегрирования вплоть до 100000-500000 точность возрастает вплоть до 6-9 знака после запятой

• При дальнейшем разбиении точность уменьшается• Условием окончания итерационного процесса является

различие элементов текущей и предыдущей итерации менее, чем на заданную точность eps, либо превышение наперёд заданного максимального числа шагов maxN

• При заданной точности eps порядка 10^-8 норма вектора невязки имеет порядок 10^-12 – 10^-17

Page 21: Полуянов С.В.

Реализация и распараллеливание

• Время вычисления правой части существенно превышает время решения системы линейных алгебраических уравнений

• При минимальном размере матрицы 12х12 есть в каждом блоке F[i] лишь один неграничный элемент, поэтому распараллеливание не повышает производительность

• Однако уже при следующем возможном размере 16х16 наблюдается рост производительности

• При достаточном размере матрицы на системе с двуядерным процессором Core 2 Duo наблюдается практически двукратный прирост производительности распараллеленной программы

Page 22: Полуянов С.В.

Реализация и распараллеливание

Размер матрицы Число потоков Время вычисления правой части, сек

Время решения СЛАУ, сек

12х12 1 3.04 0.05

2 3.06 0.05

16х16 1 4.85 0.06

2 3.22 0.06

64х64 1 24.38 0.93

2 13.07 0.93

400х400 1 160.69 26.14

2 82.47 25.98

Page 23: Полуянов С.В.

ИтогБыл реализован и распараллелен алгоритм для построения среднеквадратического приближения, получен почти двукратный прирост производительности на системе с двуядерным процессором

Page 24: Полуянов С.В.