Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекция по ПП 2

.pdf
Скачиваний:
12
Добавлен:
02.06.2015
Размер:
1.61 Mб
Скачать

ЗАКОН АМДАЛА

Это означает, что если в программе

10% последовательных операций (то

есть f=0,1), то, сколько бы процессоров ни использовалось, убыстрения работы программы более чем в десять раз

никак ни получить, да и то, 10 — это

теоретическая верхняя оценка самого

лучшего случая, когда никаких других отрицательных факторов нет.

ЗАКОН АМДАЛА

Следует отметить, что распараллеливание ведет к определенным издержкам, которых нет при последовательном выполнении программы. В качестве примера таких

издержек можно упомянуть

дополнительные операции, связанные с распределением программ по

процессорам, обмен информацией между процессорами

ЗАКОН АМДАЛА

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

программы на разных количествах

процессоров.

ЗАКОН АМДАЛА

Можно рассчитать ускорение для двух процессоров, при этом доля последовательных вычислений составляет тоже 2%.

Итак, дано f=2, p=2.

Подставим в формулу S=1/(f+(1-f)/p)

значения f, p.

В результате расчета получается

значение ускорения, которое равняется 1.96.

ЗАКОН АМДАЛА

 

 

 

 

Доля последовательных вычислений

 

 

 

%

 

 

 

50

25

10

5

2

Число

Ускорение работы программы

процессоров

 

 

 

 

 

2

 

 

 

 

 

1,33

1,6

1,82

1,9

1,96

4

1,6

2,28

3,07

3,48

3,77

8

1,78

2,91

4,71

5,93

7,02

12

1,88

3,36

6,4

9,14

12,31

32

1,94

3,66

7,8

12,55

19,75

512

1,99

3,97

9,83

19,28

45,63

2048

2

3,99

9,96

19,82

48,83

ЗАКОН АМДАЛА

Из таблицы хорошо видно, что если, например, доля последовательного кода составляет 2%, то более чем 50-

кратное ускорение в принципе получить

невозможно.

ЗАКОН АМДАЛА

С другой стороны, нецелесообразно запускать такую программу на 2048 процессорах с тем, чтобы получить 49кратное ускорение. Тем не менее, такая задача достаточно эффективно будет

выполняться на 16 процессорах, а в

некоторых случаях потеря 37% производительности при выполнении

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

ЗАКОН АМДАЛА

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

непараллельного кода.

Эта формула не учитывает накладные расходы на обмены между

процессорами, поэтому на практике ситуация может быть еще хуже.

Закон Амдала

ЗАКОН ГУСТАФСОНА

Оптимистичный взгляд на закон Амдала

даёт закон Густафсона-Барсиса. Вместо вопроса об ускорении на p процессорах можно рассмотреть вопрос

о замедлении вычислений при переходе

на один процессор.