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

Нехай 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

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

№ Варіанта Число процесорів Процент послідовного коду, %
           
           
           
           
           
           
           
           
           
           
           
          50

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

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

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: