Slide 1 - Indico

advertisement
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
Результаты численных экспериментов
• Процесс сходится за меньшее число
итерации, чем при методе Ньютона
• Интервал сходимости больше
• Увеличение узлов и тем самым увеличение
количества процессоров заметно
улучшаеткачество метода (увеличивается
интерграл искорость сходимости
Спасибо за внимание
Download