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

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

Майкл Флінн запропонував 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), які підкажуть компілятору, як розпаралелити програму. Крім того, можливе повністю автоматичне розпаралелювання програми компілятором.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]