Класифікація паралельних обчислювальних систем

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

SISD (Single Instruction Single Data)

[ред. | ред. код]

Single Instruction Single Data — це звичайні послідовні комп'ютери. Програма приймає один потік даних і виконує один потік інструкцій з обробки цих даних . Іншими словами, інструкції виконуються послідовно, і кожна інструкція оперує мінімальною кількістю даних (наприклад, додавання двох чисел).

MISD (Multiple Instruction Single Data)

[ред. | ред. код]

Multiple Instruction Single Data різні потоки інструкцій виконуються з одними і тими ж даними. Зазвичай такі системи не призводять до прискорення обчислень, так як різні інструкції оперують одними і тими ж даними, в результаті на виході системи виходить один потік даних. До таких систем відносять різні системи дублювання і захисту від збоїв, коли, наприклад, кілька процесорів дублюють обчислення один одного для надійності. Іноді до цієї категорії відносять конвеєрні архітектури. Серед процесорів виробництва Intel, конвеєр присутній починаючи з процесора Pentium.

SIMD (Single Instruction Multiple Data)

[ред. | ред. код]

Single Instruction Multiple Data один потік інструкцій виконує обчислення одночасно з різними даними. Наприклад, виконується додавання одночасно восьми пар чисел. Такі комп'ютери називаються векторними, тому що подібні операції виконуються аналогічно операціям з векторами (коли, наприклад, додавання двох векторів означає одночасне складання всіх їх компонентів). Найчастіше векторні інструкції присутні на додаток до звичайних «скалярним» інструкціям, і називаються SIMD-розширенням (або векторним розширенням). Приклади популярних SIMD-розширень: MMX, 3DNow !, SSE та ін.

MIMD (Multiple Instruction Multiple Data)

[ред. | ред. код]

Multiple Instruction Multiple Data різні потоки інструкцій оперують різними даними. Це системи найбільш загального вигляду, тому їх простіше всього використовувати для вирішення різних паралельних завдань.
MIMD -системи, в свою чергу, прийнято розділяти (класифікація Джонсона) на системи із загальною пам'яттю (кілька обчислювачів мають спільну пам'ять) і системи з розподіленою пам'яттю (кожен обчислювач має свою пам'ять ; обчислювачі можуть обмінюватися даними) . Крім того, існують системи з неоднорідним доступом до пам'яті (NUMA) — в яких доступ до пам'яті інших обчислювачів існує, але він значно повільніше, ніж доступ до "своєї " пам'яті.

Системи із загальною пам'яттю

[ред. | ред. код]

Системами із загальною пам'яттю називають системи, в яких кілька процесорів мають спільну оперативну пам'ять. Найчастіше зустрічаються системи цього типу — комп'ютери з багатоядерними процесорами (multi — core) .

Системи з розподіленою пам'яттю

[ред. | ред. код]

Система містить кілька процесорів, кожен має свою оперативну пам'ять. Для забезпечення обміну інформацією процесори з'єднані каналами зв'язку. За характером зв'язків такі системи діляться на системи з універсальною комутацією (кожен процесор може передати інформацію будь-якого іншого процесору) і системи з жорсткою (фіксованою) комутацією (кожен процесор може передати інформацію тільки обмеженому числу інших процесорів).

Системи з розподіленою пам'яттю, в яких кожен обчислювальний вузол являє собою повноцінний комп'ютер зі своєю копією операційної системи, називають кластерними (або «кластерами»). Кластери звичайно являють собою шафи з компактними системними блоками, які з'єднані один з одним каналами зв'язку (за допомогою спеціальних комутаторів), які передають дані зі швидкістю 10 Гбіт / сек

Гібридні системи

[ред. | ред. код]

Багато сучасних системи являють собою ієрархію описаних вище систем. Наприклад, сучасні процесори є конвеєрними процесорами, і мають набір векторних інструкцій (MMX, SSE тощо), що дозволяють виконувати одночасні обчислення з різними даними. Крім того, процесор може мати два ядра, або може бути кілька процесорів в комп'ютері. Таким чином, на цьому рівні система являє собою систему із загальною пам'яттю. Потім можна з'єднати декілька таких комп'ютерів в кластер, утворивши новий рівень ієрархії: систему з розподіленою пам'яттю.

Див. також

[ред. | ред. код]