Українська
Моделі, метрики та закони масштабування
Моделі паралелізму
Спосіб розподілу роботи визначає модель паралелізму (табл. 1.1).
Таблиця 1.1. Моделі паралелізму
| Модель | Суть | У курсі |
|---|---|---|
| Паралелізм даних (data parallelism) | одна операція над різними частинами великого масиву даних | теми 6, 7, 10, 11 |
| Паралелізм задач (task parallelism) | різні незалежні задачі виконуються одночасно | теми 5, 10 |
| Конвеєр (pipeline) | дані проходять послідовні етапи, кожен етап працює у своєму потоці | теми 4, 15 |
| «Майстер – робітник» (master–worker) | головний процес роздає частини роботи робітникам і збирає результати | теми 2, 12, 13 |
| Обмін повідомленнями (message passing) | процеси без спільної пам’яті взаємодіють лише повідомленнями | теми 12, 14–16 |
Модель обирають за характером задачі: обробка зображення природно ділиться на частини даних, вебсервер обслуговує незалежні запити-задачі, а обробка потоку подій зручно описується конвеєром.
Метрики паралельних програм
Нехай
- прискорення (speed-up)
– у скільки разів паралельна програма швидша за послідовну; - ефективність (efficiency)
– частка використання кожного процесора; - вартість (cost)
– сумарний процесорний час; за ідеального розпаралелювання вона дорівнює .
Ідеальне, лінійне прискорення
Наприклад, якщо
Закон Амдала
Нехай частка
Звідси прискорення за законом Амдала (Amdahl’s law, 1967):
Коли
Якщо паралельна частина становить 95 %, програма ніколи не прискориться більше ніж у 20 разів, скільки б процесорів не було; при
Рис. 1.6. Прискорення за законом Амдала для різних часток паралельного коду
Висновки із закону Амдала:
- спочатку слід зменшувати послідовну частку програми, а вже потім додавати процесори;
- кожне подвоєння кількості процесорів дає дедалі менший виграш;
- закон не враховує накладних витрат, тому реальне прискорення ще менше: інколи при надмірній кількості потоків час навіть зростає.
Закон Густафсона–Барсіса та масштабованість
Закон Амдала розглядає задачу фіксованого розміру. У 1988 році Джон Густафсон (John Gustafson) і Едвін Барсіс (Edwin Barsis) звернули увагу, що на більшій кількості процесорів зазвичай розв’язують більшу задачу: докладнішу сітку прогнозу погоди, більше пікселів, більше частинок. Послідовна частина (читання параметрів, збирання результату) при цьому зростає мало.
Нехай
При
Два закони не суперечать один одному, а відповідають двом способам оцінювання масштабованості (scalability) програми (рис. 1.7):
- сильна масштабованість (strong scaling) – розмір задачі фіксований, кількість процесорів зростає; мета – скоротити час (закон Амдала);
- слабка масштабованість (weak scaling) – розмір задачі зростає пропорційно кількості процесорів; мета – зберегти час сталим (закон Густафсона).
Рис. 1.7. Сильна та слабка масштабованість
Метрика Карпа–Флатта
Виміряне прискорення можна використати, щоб оцінити, яка частка програми фактично поводиться як послідовна. Експериментально визначена послідовна частка (experimentally determined serial fraction), або метрика Карпа–Флатта (Karp–Flatt metric, 1990):
Якщо