Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
57
Добавлен:
17.04.2013
Размер:
160.95 Кб
Скачать

УДК 519.63

О НЕКОТОРЫХ МЕТОДАХ РЕШЕНИЯ КРАЕВЫХ ЗАДАЧ НА МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ1

Т.А. Кудряшова, С.В. Поляков

Институт Математического Моделирования РАН

Численное решение краевых задач для обыкновенных дифференциальных уравнений и уравнений в частных производных является одной из центральных проблем математического моделирования. Решению краевых задач посвящено немало учебников и монографий. Однако особенности адаптации широко известных численных алгоритмов к вычислениям на многопроцессорных ЭВМ до сих пор слабо освещены в литературе. Исключение составляют работы Воеводина (см., например, [1]) и некоторых других авторов. Основной причиной сложившейся ситуации была быстрая смена архитектуры многопроцессорных вычислительных систем (МВС). В настоящее же время в связи с приближением к физическим пределам быстродействия вычислительной и коммуникационной аппаратуры ситуация стабилизировалась, и появилась возможность сосредоточиться на исследовании алгоритмов и концепций параллельных вычислений.

В настоящей работе рассмотрена проблема решения на МВС одномерных краевых задач для уравнений и систем второго порядка, а также обобщение полученных результатов на многомерный случай. В своем анализе мы остановились на случае МВС с распределенной архитектурой, поскольку они имеют наибольшее распространение в мире в силу известных технологических особенностей и преимуществ. В основу предлагаемых нами параллельных алгоритмов положен известный принцип суперпозиции решений линейных уравнений [2]. С его помощью и метода декомпозиции области были реализованы несколько вариантов метода прогонки, позволяющие решать одномерные краевые задачи, как для традиционных граничных условий 1-ого, 2-ого и 3-его рода, так и в случае периодических и нелокальных условий. В принципе, эта методика не является новой. Однако, по определенным причинам она практически не использовалась в параллельных вычислениях. Последнее, в частности, связано с тем, что теоретическая эффективность (не учитывающая реальное время обменов) исходного (базового) параллельного алгоритма

1 Работа выполнена при поддержке РФФИ, грант N 99-07-90388.

1

прогонки на системах с распределенной памятью составляет 33%. Если прибавить к этому проблемы, связанные с пересылками данных, то реальная эффективность получится еще меньше. Тем не менее, мы считаем, что указанные ограничения не “ставят крест” на методике вцелом. На наш взгляд у нее есть одно важное свойство, а именно, асимптотическая зависимость ускорения и/или эффективности от числа используемых процессоров. И все дело заключается в правильном использовании этого свойства.

В настоящей работе приведены несколько примеров такого использования. В частности, нами показано, что при решении одномерных стационарных краевых задач со слабо монотонным дифференциальным оператором теоретическая эффективность может быть повышена до 100%. Кроме того, при решении нелинейных краевых задач методом Ньютона также возможно достижение высокой эффективности при незначительном снижении скорости сходимости путем специальной схемы обновления оператора перехода на итерациях. 100 % эффективность может достигаться также при решении нестационарных одномерных и многомерных линейных и нелинейных уравнений и систем. В каждом из перечисленных случаев в основе высокой эффективности алгоритмов лежит указанное выше их асимптотическое свойство.

Постановки краевых задач

Рассмотрим одномерное уравнение второго порядка общего вида на интервале (0,1):

d

k

du

 

 

 

 

 

du

 

 

 

 

 

 

 

 

+

r u

+

r

 

qu = −

f ,

0 < x < 1.

(1)

 

dx

dx

dx

 

 

0

 

 

1

 

 

 

 

 

В линейном случае в классической постановке коэффициенты этого уравнения зависят только от координаты x :

k = k( x ),

ri = ri ( x ), q = q( x ), f = f ( x ),

 

и являются

кусочно-непрерывными функциями

на

(0,1), причем

k(x) k0 > 0 .

При

формулировке обобщенной

краевой задачи для

уравнения (1) можно использовать одну из трех формулировок дополнительных условий:

η mu( xm ) + θ mu' ( xm ) = µ m , η m2 + θ m2 0, m = 0,1,

(21)

(22)

u( 0 ) = u(1), u ( 0 ) =

u (1),

Φ 0 ( u ) = c0 , Φ 1( u ) = c1 .

(23)

2

Здесь предполагается, что x0 0 , x1 1, η m , θ m , m , cm - некоторые константы ( m = 0,1). Краевые условия (21) включают в себя условия либо

1-ого, либо 2-ого, либо 3-его рода, а также могут быть смешанными. Краевые условия (22) соответствуют периодической задаче, для чего необходима также периодичность коэффициентов уравнения (1). В третьем случае, Φ m ( u ) - линейные функционалы от u( x ), которые в

можно представить в виде следующих интегралов:

1

Φ m ( u ) = u( x' )ρ m ( x' )dx' ( m = 0,1).

0

Мы также предполагаем, что все функции и константы, входящие в уравнение (1) и краевые условия (2α ), определяют единственное решение соответствующей краевой задачи.

В квазилинейном случае краевые задачи ставятся аналогичным образом с той лишь разницей, что коэффициенты уравнения (1) зависят еще и от решения задачи u( x ):

k = k( x,u ) k0 > 0, ri = ri ( x,u ), q = q( x,u ), f = f ( x,u ) ,

в дополнительных условиях (2α ) величины η m = η m ( u ) , θ m = θ m ( u ),m = m ( u ) - нелинейные функции по u , а Φ m - нелинейные функционалы от u( x ). Здесь также предполагается существование единственного решения каждой из рассматриваемых краевых задач.

Отметим далее, что общий нелинейный случай, когда коэффициенты уравнения (1) зависят еще и от производной u' ( x ), рассмотрен здесь не будет, однако все результаты, полученные ниже для квазилинейных задач естественным образом обобщаются и на эту ситуацию.

В нестационарном случае мы имеем одномерное параболическое

уравнение общего вида

 

 

 

 

 

 

 

 

u

=

( k

u

+

r u ) +

r

u

qu +

f ,

0 < x < 1, t > 0,

(3)

 

 

x

 

 

 

t

 

x

0

1 x

 

 

 

 

 

с начальным условием

 

 

 

 

 

 

 

u( x,0 ) =

g( x )

 

 

 

 

 

 

 

(4)

и граничными условиями вида (2). При этом в линейном случае коэффициенты задачи зависят также и от временной координаты t , а в квазилинейном - от t и u . Решение задачи предполагается классическим.

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

(1):

3

1) r0 = 0, r1 = 0 ; 2) r0 = 0, r1 0 ; 3) r0 0, r1 = 0 ; 4) r0 0, r1 0 .

Это разделение обусловлено свойствами получаемого дифференциального решения и существенно влияет на выбор численного метода решения соответствующей краевой задачи.

Разностные задачи

Для численного решения сформулированных выше краевых задач мы используем метод конечных разностей, взяв за основу интегроинтерполяционный подход (ИИП) к построению разностных схем [3]. На

отрезке

[0,1]

по

координате

x

вводим

неравномерную

сетку

ω x = { x =

xi , i =

0,..., N x}

, а в случае

нестационарной задачи

еще

и

равномерную сетку по времени

ω

t =

{ t = t j = τ

j, j = 0,..., Nt , τ = Lt

/ Nt }

на

отрезке интегрирования [0, Lt]. Тогда в стационарном случае с помощью ИИП получаем следующую разностную схему:

Λ

h yh =

fh ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(5)

где yh

-

сеточный аналог искомой функции u ,

 

fh

-

сеточный аналог

правой части

f

, а Λ h - соответствующий разностный оператор. Запишем

определение Λ

h

в индексной форме в самом общем случае во внутренних

узлах сетки ω x ( 0 <

i < N x

1):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

~ yi+ 1ei+ 1

yiei

 

~ yi ei yi1ei

1

~

 

 

 

 

 

 

Λ

 

y

 

=

 

 

k

 

 

 

 

 

 

 

k

 

 

 

 

 

 

q y

.

 

 

(6)

h

i

 

i+ 1/ 2

 

 

 

 

 

i+

1/ 2

 

 

 

 

 

 

 

 

 

!i

 

 

ei+ 1/ 2hi+ 1

 

 

 

 

ei1/ 2hi

 

 

i

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Здесь используются следующие обозначения: hi ,

hi+ 1

-

левый и правый

шаги сетки относительно узла xi ,

 

!i =

0.5(hi +

hi+ 1 ) - средний шаг в узле xi ,

~

 

 

 

 

 

 

 

~±

 

 

 

 

 

 

xi

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

i +

 

 

 

ei = exp{r0 (x)dx / k(x)} ,

qi

+

1

,

ki± 1/ 2 -

ki± 1/ 2 = ki± 1/ 2

!i r1,i ) ,

 

qi =

r0,i r1,iki

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

1

 

x

 

 

1

некоторые

 

аппроксимации

интегралов

i+ 1

 

 

и

i

 

 

 

,

 

dx / k(x)

 

dx / k(x)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~+

 

~

 

~±

 

i

 

 

 

 

i1

 

 

 

 

χ i = 1/(1 +

Ri ),

 

Ri

 

 

 

=

0.5(r1,i ± | r1,i |) / ki ,

qi =

q(xi ) ,

 

= 0.5(r1,i hi+ 1

r1,i hi ) ,

 

r1,i

ki = k( xi ) , rm,i = rm (xi ) (m = 0, 1) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Схема (5)-(6) в случае r0

=

0, r1 =

0 , совпадает с однородной схемой

Самарского для стационарного уравнения теплопроводности. В случае r0 = 0, r1 0 , имеем регуляризованную однородную схему Самарского (см.

[3]) для уравнения теплопроводности с переносом. Для r0 0, r1 = 0 , получаем схему типа Кареткиной (см. [4]) для стационарного уравнения

4

теплопроводности со слабо монотонным оператором. В общем случае ( r0 0, r1 0 ) получаем естественное обобщение двух предыдущих схем.

Отметим далее, что схема (5)-(6) включает также и условия на границе. Для первой краевой задачи они очевидны. В случае краевых задач 2-ого и 3-его рода, в граничных узлах записываются разностные аналоги уравнения (1) с учетом заданных на границе потоков. Для периодической задачи достаточно добавить лишь одно граничное уравнение, например, в узле i = N x и учесть равенства y0 = yN x , yN x + 1 = y1 .

В случае нелокальных граничных условий используются сеточные аналоги интегральных соотношений (23):

N x

yiρ m,i!i = cm (m = 0, 1).

i= 0

В квазилинейной задаче необходимо учитывать также, что коэффициенты разностных уравнений (5) как внутри области, так и на границе могут зависеть от решения yh . Единственное предположение,

которое здесь существенно - это локальный характер нелинейности.

В нестационарном случае предлагается использовать известную схему с весами

 

yˆh

yh

= σ Λ h yˆh + (1 − σ ) Λ h yh + σ fˆh + (1 − σ ) fh , yh

 

t= 0 = gh ,

(7)

 

 

 

τ

 

 

 

 

 

 

 

 

 

 

 

где yˆh и yh

относятся к верхнему и нижнему слоям по времени ( t + τ

и t ),

а Λ h определен аналогично (6). В качестве веса σ будем брать 1 и 0.5, т. е.

ограничимся чисто неявной и симметричной схемами.

Завершая обсуждение разностных формулировок задачи, отметим, что коэффициенты в разностных схемах (5)-(6) и (7)-(6) обычно выбирают таким образом, чтобы порядок аппроксимации получаемых схем составлял соответственно O(!2 ) и O(!2 + τ 1/ σ ) . Для этого коэффициенты уравнений и граничных условий, содержащие интегралы, вычисляются точно или аппроксимируются со вторым порядком по пространству.

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

Рассмотрим теперь алгебраическую задачу, которая возникает в результате построения разностных схем и собственно дает искомое разностное решение (стационарное, либо относящееся к очередному слою по времени). Простой анализ показывает, что мы получаем в результате систему уравнений с трехдиагональной матрицей, или близкую к ней. Этот факт записывают обычно с помощью следующей системы уравнений

5

Ai yi1 Ci yi + Bi yi+ 1 = − Fi , 1 i N 1.

(8)

На границе в случае 1-ой, 2-ой, 3-ей или смешанной краевых задач получаются уравнения

C0 y0 + B0 y1 = − F0 , CN yN + AN yN 1 = − FN .

(91)

В случае периодических граничных условий уравнения (8) имеют место для всех i = 2,...,N 1, а в узлах i = 1 и i = N справедливы уравнения

A1 yN C1 y1 + B1 y2 = − F1 , AN yN 1 CN yN + BN y1 = − FN .

(92)

В случае нелокальных граничных условий первое и последнее уравнения системы принимают вид

 

 

N

 

 

 

N 1

 

 

 

 

C0 y0 + B0,i yi = − F0 , A0 ,i yi CN yN = FN .

 

(93)

 

 

i = 1

 

 

 

i = 0

 

 

 

 

Относительно

свойств

коэффициентов

системы

(8)-(9)

предполагается следующее:

 

 

 

 

 

Ai , Bi 0,

Ci

> 0,

i =

0,..., N ,

 

 

(10)

и либо

 

 

 

 

 

 

 

 

 

 

Ci

=

Ai+

B+i

Di ,

D> i

0,=

i

0,..., N ,

 

(111)

либо

 

 

 

 

 

 

 

 

 

 

Ci

=

Ai+ 1+

Bi

+1 Di ,

D> i

0,=

i 1,..., N 1.

 

(112)

Последнее условие возникает в случае немонотонного оператора ( r0 0 )

во внутренних узлах сетки. На границе в этом случае должны быть выполнены условия (111). Если краевая задача является нелокальной, то должны выполняться условия ее разрешимости.

Базовый алгоритм распараллеливания

Рассмотрим алгоритм решения полученной алгебраической задачи на примере системы (8)-(91), предполагая использование МВС с p

процессорами. Для этого введем равномерное линейное разбиение

множества номеров узлов сетки

= { 0,1,...,N } на связные подмножества

m

= { i( m ) ,...,i( m ) } ( m = 0,..., p 1),

соответствующие разбиению вектора

 

1

2

 

неизвестных по процессорам (см. рис.1).

6

Рис. 1. Разбиение расчетной области по процессорам.

В результате такого обрабатывать (i2( m) i1(m) внутреннем ( 0 < m < p комбинации:

разбиения процессор с номером m будет

+1) точек. Представим далее решение на каждом

1) процессоре в виде следующей линейной

y

i

y( m ) = y( I ,m )

+

 

y ( m ) y( III ,m ) +

y ( m ) y

( II ,m ) ,

(131)

 

i

i

 

 

i1

i

i2

i

 

где функции

yi( α ,m) ( α

 

= I, II , III )

полностью определены на множестве

узлов

 

m и

играют

роль

некоторого

базиса (см.

рис. 2), а значения

искомой функции на границе m

-

yi1( m ) и yi2( m ) - пока не известны. Во

внутренних узлах

m

функция

y( I ,m)

находится

из уравнений (8), а

 

 

 

 

 

 

i

 

 

 

функции yi( II ,m) , yi( III ,m )

из уравнений (8) с нулевой правой частью.

 

Рис. 2. Базисные функции yi( α ,m) на процессоре с номером m .

 

Граничные условия для yi( α ,m)

ставятся следующим образом:

 

 

yi(( Im,m)

) = 0, yi(( Im,m)

) = 0;

yi(( IIm ),m ) = 0, yi(( IIm ),m ) = 1;

yi(( IIIm ) ,m ) =

1, yi(( Im,m)

) = 0.

(141)

1

2

 

1

2

1

2

 

 

7

Очевидно, что на нулевом и последнем процессорах можно использовать неполные линейные комбинации:

y(0)

=

y( I ,0) +

y ( 0 ) y( II ,0)

i

 

 

i

i2

i

y( p1)

=

y( I , p1) +

y ( p1)

i

 

 

i

 

i1

,

(132)

yi( III , p1) .

(133)

Из левого граничного условия исходной задачи для базисных функций нулевого процессора получаем:

C

y( I ,0 )

B y( I ,0 )

=

 

F ,

0

0

0

1

 

 

0

C

y( II ,0 )

B y( II ,0 )

=

0,

0

0

0

1

 

 

 

y( I ,0 )

i2( 0 )

y( II ,0 )

i2( 0 )

=

0;

(142)

=

1.

 

Из правого граничного условия исходной задачи для базисных функций последнего процессора получаем:

y( I ,p1 )

i1( p1 )

y( III ,p1 )

i1( p1 )

=

=

0, C

N

y( I ,p1 )

A y( I ,p1 ) =

F ;

 

 

N

 

N

N 1

 

N

(143)

1, C

 

y( III ,p1 )

A

y( III ,p1 ) =

0.

 

 

N

N

 

N

N 1

 

 

 

Отметим, что базисные функции при выполнении условий (10)-(11) удовлетворяют принципу максимума:

 

y

( I ,m)

 

 

 

 

 

D

1

 

 

 

 

 

, 0

y

( II ,m)

( III ,m)

1, =m 0,..., p 1,

(151)

 

 

 

 

 

 

C

 

 

F

 

 

 

C

1, 0y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

( II ,m)

+

 

 

( III ,m )

1 ,

для всех i и m .

 

(152)

yi

 

 

yi

 

 

 

Эти свойства обеспечивают устойчивость вычислений по формулам (13). Для нахождения неизвестных значений искомой функции в

граничных узлах подобластей m запишем исходные уравнения (8) в двух соседних точках, принадлежащих процессорам с номерами m и m + 1:

Ai( m ) yi( m )

1 Ci( m ) yi( m ) + Bi

( m ) yi( m ) + 1

= − Fi( m ) ,

 

 

 

 

2

2

2

2

 

2

2

2

 

 

 

 

Ai( m+ 1) yi( m+ 1) 1 Ci( m+ 1) yi( m+ 1) + Bi( m+ 1) yi( m+ 1) + 1 = − Fi( m+ 1) .

 

 

 

1

1

 

1

1

 

1

1

1

 

 

 

Если учесть теперь в этих уравнениях очевидные связи

 

 

yi( m ) 1 =

yi(( Im,m) 1) +

yi( m ) yi(( IIIm ) ,m1 )

+ yi( m ) yi(( IIm ),m1) ,

yi( m ) + 1 =

yi( m+ 1 ) ,

 

2

 

2

1

2

 

2

2

2

1

 

 

yi( m+ 1 ) 1 =

yi( m ) , yi( m+ 1 ) + 1 =

 

( I ,m )

 

( III ,m )

 

( II ,m )

,

yi( m+ 1 ) + 1

+ yi( m+ 1 ) yi( m+ 1 ) + 1 +

yi( m+ 1 ) yi( m+ 1 ) + 1

1

 

2

1

 

 

1

1

1

2

1

 

то несложно получить следующие уравнения

8

 

~

 

 

~

 

 

~

 

~

 

~

Ai( m ) yi( m ) Ci( m ) yi( m ) +

Bi( m ) yi( m+ 1 ) = − Fi( m ) ,

(16)

 

2

1

~

2

2

 

~2

1

2~

Ai( m+ 1 ) yi( m )

Ci( m+ 1 ) yi( m+ 1 ) +

Bi( m+ 1 ) yi( m+ 1 ) = − Fi( m+ 1 ) ,

 

 

1

2

 

1

 

1

 

1

2

1

 

с коэффициентами

 

 

 

 

 

 

 

~

=

 

( III ,m)

,

~

= Bi( m ) ,

 

 

 

Ai( m )

Ai( m ) yi( m ) 1

Bi( m )

 

 

 

2

 

2

2

 

 

2

 

2

 

 

 

~

Ci2( m )

~

Ai1( m+ 1)

= Ci( m )

 

( II ,m)

,

"

= Fi( m )+

 

( I ,m)

,

Ai( m ) yi( m ) 1

Fi( m )

Ai( m ) yi( m ) 1

2

2

2

 

2

2

 

2

2

 

= Ai( m+ 1) ,

"

 

 

 

( II ,m+ 1)

,

 

 

 

Bi( m+ 1) = Bi( m+ 1) yi( m+ 1) + 1

 

 

 

1

 

1

 

1

1

 

 

 

 

"

= Ci1( m+ 1)

( III ,m+ 1)

"

= Fi1( m+ 1)+

( I ,m+ 1)

Ci1( m+ 1)

Bi1( m+ 1) yi( m+ 1)

+ 1

, Fi1( m+ 1)

Bi1( m+ 1) yi( m+ 1)

+ 1 .

 

 

1

 

 

 

1

 

Действуя аналогично для каждой пары процессоров, получим следующую

систему из 2 p

2 уравнений для искомых 2 p 2 неизвестных

 

"

"

yi+

"

"

i=

"

(0)

(1)

(1)

( p1)

},

(17)

Ai yi1

Ci

Bi yi+ =1

Fi ,

 

{i2

,i1

,i2 ,...,i1

где под

индексом i ± 1

понимается

переход

к

соответствующему

соседнему элементу из множества " .

 

 

 

i( 0 )

и i( p1 )

уравнения

Нетрудно проверить, что в граничных узлах

 

 

 

 

 

 

 

 

 

 

2

1

 

(17) принимают вид (91). Кроме того, в силу свойств (15) коэффициенты новой “короткой” системы уравнений также удовлетворяют условиям принципа максимума вида (10)-(11). Таким образом, решение системы (17) существует и является единственным. Определив его методом обычной (скалярной) прогонки, можно с помощью формул (13), вычислить решение исходной задачи (8)-(9).

Приведем теперь полную последовательность действий в алгоритме параллельной прогонки. Сначала на каждом процессоре с помощью алгоритма скалярной прогонки решаются три (или две) задачи для нахождения базисных функций y( α ,m ) . Затем находятся коэффициенты для

новой задачи относительно неизвестных yi( m) , yi(m) ( m = 0,..., p 1 ). Эти

1

2

коэффициенты пересылаются корневому процессору, например, нулевому. Корневой процессор осуществляет решение короткой системы уравнений

(17) и рассылает полученные значения yi( m ) и

yi( m ) соответствующему

1

2

процессору. Получив эти данные, каждый процессор восстанавливает свою часть искомого решения по формулам (13). На этом процедура решения заканчивается.

Рассмотрим теперь вопрос об эффективности изложенного алгоритма. Для этого напомним, что каждый параллельный алгоритм

9

оценивается по двум параметрам - ускорению Sp и эффективности Ep , которые определяются по формулам

Sp =

t

,

Ep =

Sp

100%,

(18)

1

 

tp

p

 

 

 

 

 

где t1 - время решения исходной задачи на одном процессоре, tp - время

решения исходной задачи по параллельному алгоритму на p процессорах. В теоретических исследованиях обычно не принимают во внимание накладные расходы, связанные с временем обменов, поскольку последнее является неконтролируемым фактором и сильно зависит от конкретной МВС. В связи с этим времена t1 и tp в формулах (18) заменяют на оценки

числа обобщенных арифметических операций Q1 и Qp . Последние

оценивают по количеству элементарных объектов вычислений, например, как в нашем случае, по числу узлов расчетной сетки N .

Как известно, при решении исходной задачи с помощью скалярного алгоритма прогонки приходится выполнить Q1 = C1 N обобщенных

арифметических действий. При решении задачи по изложенному параллельному алгоритму производится Qp = 3C2 Np + 2C1 p действий.

Последняя оценка следует из того, что на каждом процессоре, кроме корневого, решаются три задачи размерности N / p , а корневой процессор решает еще и короткую задачу размерности 2 p 2 . Константы C1 , C2 не зависят от N и p и близки по величине (C2 / C1 ~ 1.2 ). Теперь мы можем оценить величину ускорения и эффективность параллельного алгоритма:

Sp =

 

 

p

 

, Ep =

 

 

1

 

100%.

 

3C

2

/ C +

2 p2 / N

3C

2

/ C +

2 p2 / N

 

 

 

1

 

 

 

1

 

 

 

Эта формула показывает, что при

p <<

N ускорение Sp близко

к

величине p / 3 ,

а эффективность

Ep

составляет примерно 33

%.

Безусловно, полученные оценки можно уточнить, если рассмотреть структуру вычислений и учесть соотношения между различными видами арифметических операций. Однако полученная асимптотика не сильно изменится.

Комментарии и обобщения

Рассмотрим теперь особенности использования изложенного выше алгоритма в нестандартных ситуациях.

10

Соседние файлы в папке ЧМ (Н.Н.Калиткин, ИММ РАН)