Паралельна архітектура ЕОМ

Матеріал з Вікіпедії — вільної енциклопедії.

ПАРАЛЕЛЬНА АРХІТЕКТУРА ЕОМ - різновид архітектури ЕОМ, в якій явно (для програміста) відбувається розподіл процесу обчислень між декількома обчислювальними пристроями (процесорами), які виконують свої завдання одночасно.

Зміст

[ред.] Складність розпаралелення обчислень

Припустимо, що існує можливість суміщати виконання різних команд у часі за рахунок їхньої одночасної обробки. У граничному випадку можна припускати n-кратне скорочення часу виконання програми при використанні n процесорів замість одного. Однак наївність такого припущення стає очевидною вже при аналізі наступної простої послідовності обчислень:

А=2+3
B=A+5
C=B+A

яку неможливо розпаралелити через існуючі залежності за даними: безглуздо продовжувати обчислення, не дочекавшись результатів виконання попередніх команд.

[ред.] Закон Амдала

Практично в будь-якій програмі є деякий відсоток операцій, що не допускають паралельного виконання. Позначимо його через α. Очевидно, відсоток операцій, що допускають паралельне виконання, дорівнює 1-α. Максимальний приріст продуктивності, який можна одержати від паралельного виконання програми з такими характеристиками на машині з N процесорами в порівнянні з однопроцесорної ЕОМ, виражається законом Амдала:

S(N, \alpha) = \frac {1}{\alpha + \frac{1-\alpha}{N})}

Випадок α=0 відповідає повністю паралельній програмі й ми одержуємо N-кратний приріст, випадок α=1 – повністю послідовної, і в цьому випадку приросту немає. Закон Амдала деякою мірою допомагає відчути складність паралельного програмування: наприклад, для прискорення виконання програми в 100 разів, необхідно, щоб 99,99% операцій в програмі можливо було б виконувати з 100-кратним розпаралеленням.

Устремління числа процесорів N у нескінченність приводить до очевидного результату: S(∞,α) = 1/α, тобто принципово неможливо одержати прискорення більше 1/α при будь-якій кількості використовуваних процесорів.

[ред.] Маштабованість обчислень

Втім, цей песимістичний прогноз на практиці часто не виправдується. Було помічено, що параметри N і α не є незалежними для багатьох задач. Іншими словами, багатьо класів обчислювальних задач є масштабованими: комп'ютер з більшою кількістю процесорів дозволяє реалізовувати більш детальні обчислення, збільшувати їхню точність і т.ін, що часто призводить до зменшення.

[ред.] Складність паралельного програмування

Ефективний розподіл процесу обчислень між багатьма процесорами й забезпечення їхнього рівномірного завантаження - основна складність паралельного програмування, яке справедливо вважається набагато більш складним, ніж послідовне. За умов нерівномірного завантаженні деякі процесори можуть проводити більшу частину часу чекаючи результату обчислень того з них, на який доводиться максимальне навантаження, й ефективність всієї системи виявляється вкрай низкою. Необхідно також відзначити, що паралельна програма досить тісно првязана до типу паралеллельной архітектури. Паралельні алгоритми дуже чутливі до нюансів тої архітектури, для якої вони реалізовані, тому необхідно ретельне узгодження структури програм і алгоритмів з особливостями конкретної паралельної обчислювальної системи.