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

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

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

Переваги:

  • Простота і дешевизна побудови: можна взяти велику кількість звичайних комп'ютерів, з'єднати їх каналами зв'язку (наприклад, Ethernet), і отримати кластер.
  • Ефективне вирішення завдань, що вимагають малого обміну даними: кожен комп'ютер буде працювати на повну потужність, не чекаючи, поки звільниться доступ до оперативної пам'яті.
  • Можливість вирішувати завдання, що вимагають дуже великих обсягів оперативної пам'яті: сумарний обсяг пам'яті системи можна зробити як завгодно великим. Потрібно лише, щоб завдання розбивалася на відносно незалежні під задачі.
  • Можливість масштабування: можна з'єднати скільки завгодно обчислювальних вузлів разом, при цьому вартість системи буде пропорційна числу вузлів. У зв'язку з цим більшість найпотужніших обчислювальних систем в світі є кластерними.

 

Недоліки:

  • Проблема обміну даними: обмін даними в таких системах зазвичай йде надто повільно порівняно зі швидкістю обчислень (і з великими затримками). Тому завдання, що потребують інтенсивного обміну, неможливо вирішити на таких системах ефективно.
  • Складне програмування: програміст повинен продумати обмін даними, який буде присутній в системі, повинен сам запрограмувати цей обмін (наприклад, за допомогою MPI). При неправильному програмуванні велика ймовірність взаємних блокувань: коли, наприклад, два процесори чекають даних один від одного. Проблема блокувань є і в системах із загальною пам'яттю, але тут вона виявляє себе набагато частіше. Автоматична організація обміну даними можлива лише для деяких окремих випадків.
  • Великий розмір систем і велике енергоспоживання: кластерні системи займають цілі кімнати і навіть будівлі.