Parallel algorithm of the solution of boundary problem for system of the 1-st order ordinary differential equations Authors: T.Davitashvili (TSU (GE)), H.Meladze (GTU(GE)), V.Saakyan (IIAP NAS RA (AM)), P.Tsereteli (SANGU (GE)) • • • • • Введение Постановка задачи Описание итерационного метода Алгоритм решения задачи Реализация алгоритма для параллельной системы • Результаты численных экспериментов Введение Параллельные вычислительные системы: • Системы с общей памятью – SMP – NUMA • Системы с распределенной памятью • Графические процессоры для общих вычислений (GPGPU) Введение Технологии параллельного программирования: • OpenMP • MPI • PVM • MPP Fortran • HP Fortran • CUDA-C, CUDA-Fortran • Linda Постановка задачи Рассмотрим задачу нахождения такого значения λ* параметра λ и такой векторфункций X (t , ) ( x1 (t , ), , x N (t , )) которые удовлетворяют системе уравнений dX F (t , X (t , ), ), t (0,1) dt (1) и следующим условиям X (0, ) ( ), x1 (1, ) 0 (2) Постановка задачи ( 0 , 1 ) F (t , X , ) f 1 (t , X (t , ), ), , f N (t , X (t , ), ) ( ) 1 ( ),, N ( ) f i : [0,1] R N ( 0 , 1 ) R1 i : ( 0 , 1 ) R1 i 1, N Постановка задачи Эквивалентная задача dX F (t , X (t , ), ), dt X (0, ) ( ) с уравнением относительно λ: 1 x1 (1, ) 1 ( ) f 1 ( , X ( , ), )d 0 0 Описание итерационного метода Пусть, f(x) – функция одной вещественной переменной Существует интервал I=(a,b), в котором уравнение f(x)=0 Имеет единственный корень x и f ( x) C ( I ) , а также , когда x I . f ( x ) 0 k Поскольку найдется такая окресность I* точки 0, где f ( x ) 0, существует функция и k 1 g f g C (I ) Рассмотрим последовательность N-мерных векторов X (i) ( x1(i ) ,x2(i ) ,,x N(i ) ), i 0,1,2, Кажда компонента которых есть приближенное значение корня x . Описание итерационного метода Пусть, задано начальное приближение ( 0) ( 0) X ( x1 ,,xN(0)1,xN(0) ) а также значения функций и производных: f ( x1( 0) ) y1( 0 ) , f ( x1( 0) ), f ( x N( 0 ) ) y N( 0 ) , f ( x N( 0) ), .......................... f (1 1) ( x1( 0) ), ( j k 1, f ( N 1) ( x N( 0 ) ), j 1, N ). Описание итерационного метода Можно найти и производные обратной функции x=g(y) в этих точках x g 1 , y x g y k d k x (k ) g ( y ) dy k ( y ) 2 k 1 1 1, 2 y n 1 d ( n ) y (2n 1) n y . dx ( y ) 3 . Описание итерационного метода Очевидно, что x g ( 0) Для нахождения x заменим g(y) интерполяционным полиномом Эрмита на каком-нибудь подмножестве N множества y (ji ) j 1 и вычислим значения в точке 0. H (ji ) ( y s( i ) ) x s(i ) , H (i ) j ( y s( i ) ) x s( i ) , H (i ) j ( y s( i ) ) ( js 1) x s(i ) ( js 1) , s A j , j 1, N где Aj есть некотрое подмножество индексов A={1,2,…,N} Описание итерационного метода Построим итерационыйалгоритм вычисления ( i 1) : j-компоненты вектора X x ( i 1) j H (0), (i ) j Алгоритм параллельный. j 1, N Описание итерационного метода Используем метод для решения задачи y y 2 1, x (0,1), y(0) 0, y(1) 1. Перепишем в виде: y y3 12 x (2(c y)) dy 3 0 y (0) 2c . Учитывая граничные условия получаем 1 y3 12 (c) 1 (2(c y) dy 0. 3 0 Описание итерационного метода Итерационная формула имеет вид x ( i 1) j 1 2 x j 1 k y j 1 k y j 1 k 1 2 y x 2 j k j 1 k k ( y j 1 y j ) k 0 ( 1 ) ( y y ) f ( x ) j 1 j j 1 k N=6 – число начальных приближений M=2- число узлов в полиноме Эрмита Aj { j, j 1}, j 1,5, A6 {6,1} Алгоритм решения задачи dX F (t , X (t , ), ), dt X (0, ) ( ) Виберем начальные приближения: 1( 0) , (20) , (30) Получаем последовательность задач: dX (t , (ji ) ) dt F (t , X (t , (ji ) ), (ji ) ), X (0, (ji ) ) ((ji ) ) (ji 1) H (ji ) (0) ( i 1) j 1 2 j 1 k z j 1 k 1 2 z z j 1 k ( z j 1 k ) 2 j k j 1 k k ( z j 1 z j ) k 0 (1) ( z j 1 z j ) 1( 0) Алгоритм решения задачи Процессор 1 Процессор 2 Процессор 3 1( 0 ) (20) (30) X ( 0 ) X ( 0 ) X ( 0 ) 1 2 1(1) X (1) 1 3 (31) (21) X (1) 2 X (1) 3 Реализация алгоритма для параллельной системы • Ввод конечных точек отрезка (a и b), на котором задача имеет решение и итерационный процесс сходится. • Кроме точек а и b, определяются точки λ1 ,..., λ p 2 в интервале (a,b), где p – число используемых процессоров. Получается p пар точек (a, 1 ) , (1 , 2 ) , . . . ,( p 2 , b) Каждая пара будет находится на отдельном процессоре. Обозначим их через через 1 и 2 . • Решение задач Коши для 1 и 2 на каждом процессоре одновременно. Реализация алгоритма для параллельной системы • Решение задачи Коши (16)-(17) для вычисления производных функции φ • Вычисление λ, согласно итерационной формуле, приведенной в разделе 3, на всех процессорах одновременно • Если хотя бы на одном процессоре заданная точность достигнута, процесс заканчивется • Если заданная точность не достигнута ни на одном процессоре от j-го процессора вычисленная λ пересылается (j-1)-му процессору по кольцеобразной схеме. Принятое значение λ будет прсивоено к 2 Результаты численных экспериментов • Процесс сходится за меньшее число итерации, чем при методе Ньютона • Интервал сходимости больше • Увеличение узлов и тем самым увеличение количества процессоров заметно улучшаеткачество метода (увеличивается интерграл искорость сходимости Спасибо за внимание