Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторн_КС.doc
Скачиваний:
19
Добавлен:
11.11.2019
Размер:
297.47 Кб
Скачать

Лабораторна робота №7 Застосування закону Амдаля при створенні комп’ютерних систем.

Мета: Ознайомитися з законом Амдаля, уяснити що він показує і зрозуміти його наслідки. На практиці оцінити прискорення роботи програми, залежно від частки не паралельного коду.

Теоретичні відомості

Залежність коефіцієнта прискорення від числа процесорів і ступеню паралелізму алгоритму називається законом Амдаля.

Якщо построїти графік по закону Амдаля, то він показує, що при невеликому ступені паралелізму використання великого числа процесорів не дає значного виграшу в швидкодії. Якщо ж ступінь паралелізму достатньо великий, то коефіцієнт прискорення може бути достатній великим.

Наявність послідовних частин коду. Закон Амдаля і його наслідки.

Нехай f - це частка послідовних обчислень, 0<f<1. Максимальне прискорення S, досяжне на обчислювальній системі з P процесорів, можна оцінити за допомогою наступної формули, закона Амдала:

S (7.1)

Закон Амдала має наступні наслідки: Завжди при будь-якому скільки завгодно великому числі процесорів, незалежно від якості реалізації паралельної частини коду.

S < . (7.2)

Таким чином, якщо наприклад половина коду виконаються послідовно, то більш ніж в 2 рази код прискорити в принципі неможливо ні на якій паралельній обчислювальній системі. Крім того із закону Амдала виходить, що

f , (7.3)

тобто якщо, наприклад, необхідно на 10 процесорах дістати прискорення в 9 разів, то необхідно, щоб 99 % коду виконувалося паралельно ( f 1.2 %).

Із закону Амдала виходить висновок про те, що наявність навіть невеликих послідовних частин коду істотно знижує паралельну ефективність програми.

Наприклад, якщо, треба вірішити задачу, якого прискорення можна досягти при збільшенні швидкості виконання комунікаційних операцій в 10 разів, якщо в даний момент комунікації займають 20% часу, то згідно з законом Амдала, рішення буде:

S=1/(0,2/10+0,8)=1,25

Хід роботи:

Побудуйте графік прискорення роботи програми залежно від частки не паралельного коду. Дані для побудови графіку, в таблиці 7.1.

Таблиця 7.1

Варіанти для виконання лабораторної роботи

№ Варіанта

Число процесорів

Процент послідовного коду,

%

1

2

2

5

10

50

2

4

4

10

25

45

3

8

6

18

30

49

4

16

2

10

25

47

5

32

4

16

32

50

6

64

6

12

24

48

7

128

8

18

28

40

8

254

10

20

30

49

9

512

4

10

25

50

10

1024

2

8

20

45

11

2048

10

20

30

49

12

4096

2

10

25

50

Контрольні запитання:

  1. Закон Амдала. Ефективність використання процесорів, ступінь паралелізму.

  2. У чому полягає суть закону Амдала? Що таке прискорення?

  3. Сформулюйте слідство із закону Амдала.

  4. Що показує графік залежності коефіцієнта прискорення від числа процесорів і ступеню паралелізму алгоритму.

  5. У вас є програма і доступ, до 256-процесорного комп'ютера. Чи виконуватиметься програма в 256 разів швидше, ніж на одному процесорі?

  6. У якому випадку не можливо отримати 50% прискорення роботи програми?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]