44 КОМП'ЮТЕРНІ СИСТЕМИ КЛАСУ МIMD (МКМД)
44 КОМП'ЮТЕРНІ СИСТЕМИ КЛАСУ МIMD (МКМД)
МIMD-системи володіють великою гнучкістю, зокрема вони можуть працювати і як високопродуктивні однокористувацкі обчислювальні системи, і як багатопрограмні ОС, які паралельно виконують множину задач. Крім того, архітектура МIMD дозволяє найбільш ефективно розпорядитися усіма перевагами сучасної мікропроцесорної технології.
Приблизні значення пікової продуктивності для різних типів систем класу МIMD показані на рис. 44.1.
У МIMD-системі кожний процесорний елемент (ПЕ) виконує власну програму достатньо незалежно від інших ПЕ. У той же час ПЕ повинні якось взаємодіяти один з одним. Відмінність у способі такої взаємодії визначає умовне ділення МIMD-систем на ОС з загальною пам'яттю та системи з розподіленою пам'яттю. В системах із загальною пам'яттю, які характеризують як сильно зв'язані, є загальна пам'ять даних і команд, до якої мають доступ усі ПЕ за допомогою загальної шини або мережі з'єднань.
Рисунок 44.1 – Продуктивність МIMD-систем як функція їх типу та кількості процесорів
До цього типу, зокрема, відносяться симетричні мультипроцесори (SMP, Symmetric Multiprocessor) та системи з неоднорідним доступом до пам'яті (NUMA, Non-Uniform Memory Access).
У системах з розподіленою пам'яттю або слабо зв'язаних багатопроцесорних системах уся пам'ять розподілена між процесорними елементами, і кожний блок пам'яті доступний тільки «власному» процесору. Мережа з'єднань зв'язує процесорні елементи один з одним.
Представниками цієї групи є системи з масовим паралелізмом (MPP, Massively Parallel Processing) та кластерні обчислювальні системи.
Базовою моделлю обчислень на МIMD-системі є сукупність незалежних процесів, що епізодично звертаються до сумісно використовуваних даних.
Існує багато варіантів цієї моделі. На одному кінці спектра – розподілені обчислення, у рамках яких програма ділиться на достатньо велике число пара-лельних задач, що складаються з множини підпрограм. На другому кінці – модель потокових обчислень, де кожна операція в програмі може розглядатись як окремий процес. Така операція очікує надходження вхідних даних (операндів), які повинні бути переданими їй іншими процесами. Після цього операція вико-нується, і результуюче значення передається тим процесам, які його потребують.
Поняття симетричні мультипроцесорні обчислювальні системи, так звані SMP-системи (Symmetric Multiprocessor), відноситься як до архітектури обчислювальної системи, так і до поведінки операційної системи, яка відображає дану архітектурну організацію. SMP можна визначити як обчислювальну систему, що має такі характеристики:
є два або більше процесорів однакової продуктивності;
процесори сумісно використовують основну пам'ять і функціонують в єдиному віртуальному і фізичному адресному просторі;
усі процесори зв'язані між собою за допомогою шини або за іншою схемою так, що час доступу до пам'яті будь-якого з них є однаковий;
усі процесори розділяють доступ до пристроїв вводу/виводу або через одні й ті ж канали, або через різні канали, які забезпечують доступ до одного й того ж зовнішнього пристрою;
усі процесори здатні виконувати однакові функції (цим пояснюється термін «симетричні»);
будь-який з процесорів може обслуговувати зовнішні переривання;
обчислювальна система управляється інтегрованою операційною системою, яка організовує і координує взаємодію між процесорами та програмами на рівні завдань, задач, файлів і елементів даних.
В порівнянні з однопроцесорними схемами SMP-системи мають переваги по таких показниках:
Продуктивність. Якщо задача, яка повинна бути розв'язана, підлягає розбиттю на декілька частин так, що окремі частини можуть виконуватись паралельно, то множина процесорів дає виграш у продуктивності відносно одиничного процесора того ж типу.
Готовність. У симетричному мультипроцесорі відмова одного з компонентів не приводить до відмови системи, тому що будь-який з процесорів здатний виконувати ті ж функції, що й інші.
Розширюваність. Продуктивність системи може бути збільшена додаванням додаткових процесорів.
Масштабованість. Варіюючи число процесорів у системі, можна створювати системи різної продуктивності і вартості.
На рис. 44.2 у загальному вигляді показана архітектура симетричної мультипроцесорної обчислювальної системи.
Рисунок 44.2 – Організація симетричної мультипроцесорної системи
Типова SMP-система містить від двох до 32 ідентичних процесорів, у ролі яких звичайно використовують дешеві RISC-процесори. В останній час намітилася тенденція оснащення SMP-систем також і CISC-процесорами, зокрема Pentium.
Кожний процесор забезпечений локальною кеш-пам'яттю, яка складається з кеш-пам’яті першого (L1) та другого (L2) рівнів. Узгодженість вмісту кеш-пам'яті всіх процесорів забезпечується апаратними засобами. В деяких SMP-системах проблема когерентності знімається за рахунок загальної кеш-пам'яті. Застосування загальної кеш-пам'яті супроводжується збільшенням вартості і зменшенням швидкодії кеш-пам'яті.
Усі процесори обчислювальної системи мають рівноправний доступ до основної пам'яті і пристроїв вводу/виводу, що розділяються. Така можливість забезпечується комунікаційною системою. Звичайно процесори взаємодіють між собою через основну пам'ять. В деяких SMP-системах передбачається також прямий обмін сигналами між процесорами.
Пам'ять системи будується по модульному принципу і організована так, що дозволяється одночасне звернення до різних її модулів (банків). В деяких конфігураціях в доповнення до ресурсів, які використовуються сумісно, кожний процесор володіє також власною локальною основною пам'яттю та каналами вводу/виводу.
Основною ознакою, за якою обчислювальну систему відносять до архітектури з масовою паралельною обробкою (MPP - Massively Parallel Processing), служить кількість процесорів n. Строгої межі не існує, але при n = 128 вважається, що це вже МРР, а при n = 32 – ще ні.
Головні особливості, за якими обчислювальну систему відносять до класу МРР, можна сформулювати таким чином:
стандартні мікропроцесори;
фізично розподілена пам'ять;
мережа з'єднань з високою пропускною здатністю і малими затримками;
добра масштабованість (можливість варіювання числом процесорів (до тисяч процесорів));
асинхронна MIMD-система з пересилкою повідомлень;
програма являє собою множину процесів, які мають окремі адресні простори.
Узагальнена структура МРР-системи показана на рис. 44.3.
Рисунок 44.3 – Структура обчислювальної системи з масовою паралельною обробкою
Основні причини появи систем з масовою паралельною обробкою – це, по-перше, необхідність побудови ОС з дуже великою продуктивністю і, по-друге, зменшення її вартості.
Характерна риса МРР-систем – наявність єдиного управляючого пристрою (процесора), що розподіляє завдання між множиною підлеглих пристроїв. Схема взаємодії в загальних рисах достатньо проста:
центральний управляючий пристрій формує чергу завдань, кожному з яких призначається деякий рівень пріоритету;
по мірі звільнення підлеглих пристроїв їм передаються завдання з черги;
підлеглі пристрої оповіщають центральний процесор про хід виконання завдань, зокрема про завершення виконання або про потребу в додаткових ресурсах;
у центрального пристрою є засоби для контролю роботи підлеглих процесорів, зокрема для виявлення нештатних ситуацій, переривання виконання завдань у випадку появи більш пріоритетної задачі та ін.
У деякому наближенні є сенс вважати, що на центральному процесорі виконується ядро операційної системи (планувальник завдань), а на підлеглих – додатки. Підлеглість між процесорами може бути реалізована як на апаратному, так і на програмному рівні.
Завдяки властивості масштабованості, МРР-системи на сьогодні є лідерами по досягнутій продуктивності. З іншого боку, розпаралелювання в МРР-системах є складною задачею. Ефективність розпаралелювання у багатьох випадках сильно залежить від деталей архітектури МРР-системи. Для синхронізації паралельно виконуваних процесів необхідний обмін повідомленнями, які повинні доходити з будь-якого вузла системи у будь-який інший вузол. Час передачі інформації від вузла до вузла залежить від стартової затримки та швидкості передачі. Продуктивність процесорів набагато більше пропускної здатності каналів зв'язку, тому інфраструктура каналів зв'язку в МРР-системах є найбільш проблемною.
Слабким місцем МРР було і є центральний управляючий пристрій (ЦУП) – при виході його зі строю вся система стає непрацездатною. Підвищення надійності ЦУП здійснюється за рахунок спрощення або дублювання його апаратури.
Сфера застосування ОС з масовим паралелізмом постійно розширюється. Різні системи цього класу експлуатуються у багатьох провідних суперкомп'ютерних центрах світу.
Один із самих найсучасніших напрямів у області створення обчислювальних систем – це кластеризація. За продуктивністю та коефіцієнтом готовності кластеризація являє собою альтернативу симетричним мультипроцесорним системам. Поняття кластер визначається як група взаємоз'єднаних обчислювальних систем (вузлів), що сумісно функціонують, складаючи єдиний обчислювальний ресурс і створюючи ілюзію наявності єдиної обчислювальної машини. Як вузол кластера може бути однопроцесорна ЕОМ і ОС типу SMP або MPP. Важливим є тільки те, що кожний вузол є здатним функціонувати самостійно і окремо від кластера. В плані архітектури сутність кластерних обчислень зводиться до об'єднання декількох вузлів високошвидкісною мережею. Для опису такого підходу, крім терміну «кластерні обчислення», достатньо часто використовують такі назви: кластер робочих станцій, гіперобчислення, паралельні обчислення на базі мережі, ультраобчислення.
Як вузли кластерів можуть використовуватись однакові ОС (гомогенні кластери), а також різні (гетерогенні кластери). За своєю архітектурою кластерна ОС є слабкозв'язаною системою.
На рівні апаратного забезпечення кластер – це просто сукупність незалежних обчислювальних систем, які об'єднані мережею. У разі з'єднання ЕОМ у кластер майже завжди підтримуються прямі міжмашинні зв'язки. Рішення можуть бути простими, що ґрунтуються на апаратурі Ethernet, або складними з високошвидкісними мережами з пропускною здатністю у сотні мегабайтів у секунду.
Вузли кластера контролюють працездатність один одного та ведуть обмін специфічною інформацією, що є характерною для кластера. Контроль працездатності здійснюється за допомогою спеціального сигналу, який часто називають heart-beat, що значить «серцебиття». Цей сигнал передається вузлами кластера один одному, щоб підтвердити їх нормальне функціонування.
Невід'ємна частина кластера – спеціалізоване програмне забезпечення (ПЗ), на яке покладається задача забезпечення безперебійної роботи у разі відмови одного або декількох вузлів. Таке ПЗ виконує перерозподіл обчислювального навантаження у разі відмови одного або декількох вузлів кластера, а також відновлення обчислень у випадку виникнення збою у вузлі. Крім того, якщо в кластері сумісно використовуються диски, кластерне ПЗ підтримує єдину файлову систему.
Можливість практично необмеженого нарощування числа вузлів та відсутність єдиної операційної системи робить кластерні архітектури успішно масштабованими, і навіть системи з сотнями і тисячами вузлів показують себе на практиці з позитивного боку.