Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 1_ ПРО.doc
Скачиваний:
9
Добавлен:
14.07.2019
Размер:
211 Кб
Скачать

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

Майкл Флінн запропонував 1966 році наступну класифікацію обчислювальних систем, яка базується на кількості потоків вхідних даних та кількості потоків команд, які обробляють ці дані:

Таблиця 1. Класифікація Флінна

Один потік інструкцій

Декілька потоків інструкцій

Один п потік данних

SISD

MISD

Декілька потоків даних

SIMD

MIMD

SISD (Single Instruction Single Data):

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

MISD (Multiple Instruction Single Data):

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

SIMD (Single Instruction Multiple Data):

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

MIMD (Multiple Instruction Multiple Data): різні потоки інструкцій оперують різними даними. Це системи найбільш широкого виду, тому їх найпростіше застосовувати для рішення паралельних задач.

MIMD-си­сте­ми, в свою чергу, при­йня­то поділяти (класифікація Джонсона) на системи з загальною пам’яттю (декілька обчислювачів мають загальну па­м’ять) и системи з розподіленою пам’яттю (кожний обчислювач має свою пам’ять; обчислювачі можуть обмінюватися даними). Крім того, існують системи з неоднорідним доступом до пам’яті (NUMA), в яких доступ до пам’ті других обчислювачів існує, проте він значно повільніший, ніж доступ до «своєї» пам’яті.

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

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

Преваги:

  • Не потрібний обмін даними: дані, які розмістив в пам’ять один процесор, автоматично стають доступні другим процесорам. Відповідно, система не повинна витрачати час на пересилання даних.

  • Для таких систем просто писати програми: можна, наприклад, створити декілька обчислювальних потоків, або ж використати в програмі спеціальні директиви ( н-д, технологія OpenMP), які підкажуть компілятору, як розпаралелити програму. Крім того, можливе повністю автоматичне розпаралелювання програми компілятором.

  • Компактність систем: може бути реалізована в вигляді декількох процесорів на одній материнській платі, і/або в вигляді декількох ядер всередині процесора.