- •1. Вступ: мета, завдання, структурно-логічне місце дисципліни в навчальному процесі.
- •2. Анотований зміст дисципліни
- •3. Зміст навчального (лекційного) матеріалу
- •Лабораторна робота №1. Класифікація комп’ютерних систем.
- •Лабораторна робота №2. Вивчення архітектури комп'ютерних систем Мета роботи: Засвоїти архітектуру комп'ютерних систем. Вивчити відмінні риси архітектур комп'ютерних систем.
- •Лабораторна робота №3. Вивчення структури комп'ютерних систем.
- •Лабораторна робота №4. Вивчення принципу роботи конвеєрних комп’ютерних систем.
- •Лабораторна робота №5. Моделювання комп’ютерних систем за допомогою програми-емулятора.
- •Лабораторна робота №6. Вивчення кластерних структур.
- •Лабораторна робота №7 Застосування закону Амдаля при створенні комп’ютерних систем.
- •Лабораторна робота №8. Багатозадачний режим роботи комп’ютерної системи.
- •Рекомендована література.
- •Рибалов б.О., Лозович о.М. Комп’ютерні системи Посібник до виконання лабораторних робіт
- •65082, Одеса, вул. Дворянська, 1/3
Лабораторна робота №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 |
Контрольні запитання:
Закон Амдала. Ефективність використання процесорів, ступінь паралелізму.
У чому полягає суть закону Амдала? Що таке прискорення?
Сформулюйте слідство із закону Амдала.
Що показує графік залежності коефіцієнта прискорення від числа процесорів і ступеню паралелізму алгоритму.
У вас є програма і доступ, до 256-процесорного комп'ютера. Чи виконуватиметься програма в 256 разів швидше, ніж на одному процесорі?
У якому випадку не можливо отримати 50% прискорення роботи програми?