Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / lecture-8.ppt
Скачиваний:
5
Добавлен:
11.06.2024
Размер:
207.36 Кб
Скачать

Зависимость по данным между

операторами S1 и S2 имеется тогда и только тогда,

когда существуют целые i1, i2, . . . , i r и j1, j2, . . . , j r , такие что

h1(i1, i2, . . . , i r) = g1(j1, j2, . . . , j r),

 

h2(i1, i2, . . . , i r) = g2(j1, j2, . . . , j r),

(1)

. . .

 

hd(i1, i2, . . . , i r) = gd(j1, j2, . . . , j r)

 

и

 

ip, jp in [Lp,Up],

(2)

где p = 1, . . . , r.

 

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

Если имеется m-мерный массив А и индексные выражения массива линейны, то тогда система (1) может быть записана в следующем виде:

a11 * х1 + a12 * х2+…+ a1n * хn+c1 =0

 

a21 * х1 + a22 * х2+…+ a2n * хn+c2 =0

 

………..…

(3)

am1 * х1 + am2 * х2+…+ amn * хn+cm =0

 

и

 

Li ≤ xi ≤ Ui , где i =1 ,…, n

(4)

Скорость решения и точность решения. Приближенные тесты . Тест Банержи. Для каждого уравнения

a1*х1 + a2*х2+…+ an*хn= a0

отдельно выполняется проверка следующих соотношений :

Пусть a — целое число. Определим: a+ = a, если a ≥ 0, иначе 0; a- = –a, если a ≤ 0, иначе 0.

n

n

low (ai Li ai Ui )

high (ai Ui ai Li )

i 1

i 1

По теореме о промежуточном значении уравнение зависимости имеет вещественное решение внутри границ цикла тогда и только тогда, когда

low ≤ a0 ≤ high.

Проблемы.

1.Точность определения зависимости. В общем случае – неразрешимая проблема. Поэтому зависимость определяется с избытком (управление пойдет по всем путям, индексы захватят всю область в случае сложного индексного выражения и т.п).

2.Сложность (время) определения зависимости.

3.Уровень гранулированности. Что такое оператор в представлении (*). Иерархия зависимостей.

Параллельная ярусная схема (параллельная схема программы).

На ярусе действия – параллельно и независимо, Переход от яруса к ярусу - последовательный

Ранжирование графа. Размещение операторов на ярусах. На одном ярусе находятся операторы, между которыми нет зависимостей, операторы одного яруса могут выполняться одновременно и независимо. Переход от яруса к ярусу – последовательно.

Ширина и высота ранжированного графа (обычно для операций) – максимальный параллелизм задачи и минимальное число шагов (при наличии достаточного количества исполнителей).

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

Если граф строится по математическим соотношениям, то он представляет естественный (идеальный, “неиспорченыый ”) параллелизм задачи.

Если строится в результате анализа последовательный программы – то это “извлеченный параллелизм”, могут быть потери по сравнению с идеальным графом.

Идея непроцедурного описания алгоритма.

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

Обычно прикладной специалист, разрабатывающий численный метод, знает ответы на вопросы о зависимостях.

Метрики для параллельных программ.

1. Ускорение.

S( p) T1 Tp

Закон Амдала.

S( p)

 

 

T1

 

S( p)

 

1

 

1 a

Tcom

a

1 a

 

a

p

T1

 

p

 

 

 

 

 

 

2. Эффективность распараллеливания.

T1

 

E( p ) Tp * p

* 100%.

Для определения, как влияют затраты, связанные с поддержкой распараллеливания, на общее время исполнения параллельной программы

Суперлинейное ускорение S(p) >1, эффективность >100%. T1 может быть неизвестно

Tcomi

Пусть время счета задачи на каждом i-ом процессоре состоит из времени, затраченного на передачу данных между процессорами

и времени, затрачиваемого на вычисление Truni

p

- суммарное время по всем процессорам,

Tcom p i 1 Tcomi

затраченное только на передачу информации

Trun p ip 1 Truni

- суммарное время по всем процессорам,

 

затраченное только на вычисления

 

 

Trun ( p )

 

 

 

 

 

Tcom ( p )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

E( p ) T

( p ) T

( p ) 100%

1

T

( p ) T

 

100%

 

( p )

 

run

com

 

 

 

 

run

com

 

 

 

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

Соседние файлы в папке Лекции