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

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 тощо), що дозволяють виконувати одночасні обчислення з різними даними. Крім того, процесор може мати два ядра, або може бути кілька процесорів в комп'ютері. Таким чином, на цьому рівні система являє собою систему із загальною пам'яттю. Потім можна з'єднати декілька таких комп'ютерів в кластер, утворивши новий рівень ієрархії: систему з розподіленою пам'яттю.

Див. також ред.