Смекни!
smekni.com

Огляд компютерних систем (стр. 3 из 5)

перетворення вихідної інформації у вигляд, зручний для користувача.

Класичні матричні системи

Методом використання єдиної пам’яті є створення декількох окремих блоків, кожен з яких може працювати з одним процесором. Одною з таких реалізацій є система матричних комутаторів.

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

комутаторів, що при значних n є дуже великим числом.

Архітектура NUMA

Об’єднання переваг систем SMP знайшло своє відображення в архітектурі NUMA (Non Uniform Memory Access).

Розглянемо дану архітектуру на прикладі комп’ютера СМ*. Даний комп’ютер складається з системи кластерів, кожен з яких містить власний процесор, власну ОП, власний пристрій вводу/виводу, власний контролер пам’яті. Кластери з’єднані між собою єдиною міжкластерною шиною. Ця ОП даної системи є єдиною для користувача. Коли процесор звертається до оперативної пам’яті, контролер пам’яті аналізує адресу, і якщо дані знаходяться у власному кластері, то звертається до них через локальну шину. Якщо дані знаходяться в іншому кластері, то використовується міжкластерна шина.

Іншим прикладом комп’ютера з архітектурою NUMA є комп’ютер BBN Butterfly. Кожен вузол даного комп’ютера містить процесор, ОП, контролер пам’яті і власний пристрій вводу/виводу. Зв'язок з іншими вузлами відбувається через спеціальний комутатор Butterfly. Основною проблемою є узгодження кеш-памяті процесорів. Для вирішення цієї проблеми було розроблено архітектуру СС NUMA. Це дуже складна архітектура, що містить велику кількість протоколів для узгодження кеш-памяті. Така ж проблема узгодження кешу притаманна сучасним SMP системам. Технологія вирішення цієї проблеми досить складна. Сучасні SMP системи можуть містити 16-64 процесорів, тоді як архітектура NUMA дозволяє об’єднувати декілька тисяч процесорів в одну систему.

Використання в комп’ютерах Cray T3D/T3D. Система „Еврика"

Розглянемо, як приклад, комп’ютери класу Cray T3E/T3D. Ці комп’ютери є масово паралельними комп’ютерами, які можуть містити до 2000 процесорів. Як і всі комп’ютери даного класу, він складається з вузлів та комунікаційного середовища. Всі вузли комп’ютера діляться на 3 групи: вузли користувачів, вузли операційної системи та обчислювальні вузли. Користувач має доступ тільки до вузлів користувачів, які можуть працювати в багатозадачному середовищі. Доступу до вузлів операційної системи користувач не має. На цих вузлах виконуються файли операційної системи і служать для підтримки багатьох сервісних функцій.

Обчислювальні вузли призначені для виконання програм користувача в монопольному режимі. При запуску програми користувача, для її виконання виділяється потрібна кількість вузлів і забезпечується монопольний режим використання цих вузлів. Кількість вузлів кожного типу залежить від системи. Наприклад, реально працююча система має таку конфігурацію - 24/16/576 (24 - вузли користувача; 16 - вузли операційної системи; 576 - обчислювальні вузли). Кожен вузол системи складається з процесорного елементу та мережного інтерфейсу. Процесорний елемент складається з процесора Dec Alpha, локальної пам’яті і допоміжних підсистем. В системі Т3Е-1200Е використовуються процесори Alpha-21164 з частотою 600МГц. Мережний інтерфейс зв’язаний з мережним комутатором, що являється частиною комунікаційного середовища.

Всі маршрутизатори розміщуються у вузлах трьохвимірної решітки і з’єднані між собою. Мережевий інтерфейс зв’язаний з маршрутизатором. Всі вузли зв’язані між собою топологією трьохвимірногопростору, тобто ті вузли, що знаходяться на межах куба мають зв’язок з протилежними вузлами.

Кожен вузол безпосередньо зв’язаний з 6-ма сусідніми вузлами, в незалежності від того, де розміщується вузол: чи на грані, чи на ребрі, чи на його вершині. Два вузли зв’язані між собою двома однонаправленими каналами у різних напрямках. В комп’ютерах Cray T3E-1200E швидкість передачі даних по цих каналах досягла 480Мб/с, а час затримки на рівні апаратури - 1мс. Пошук вузла в трьохвимірній решітці відбувається наступним чином: спочатку відбувається зміщення по вісі х до того моменту, поки поточна координата х не буде рівна координаті х шуканого вузла. Аналогічний пошук відбувається по осях y, z. Також кожен маршрутизатор може паралельно передавати дані в трьох напрямках. Цікавою особливістю даного комп’ютера є апаратна підтримка бар’єрної синхронізації. Бар’єр - це таке місце в програмі, доходячи до якого процес зупиняє своє виконання до тих пір, поки решта процесів не дойдуть до цієї точки.

Цей вид синхронізації досить часто використовується при написанні програм, проте програмна реалізація бар’єру є досить складною і вимагає витрат ресурсів. Апаратна реалізація значно скорочує витратність ресурсів.


Кожен процесорний елемент має вхідний і вихідний регістри синхронізації. Кожен з цих регістрів зв’язаний зі своїм власним ланцюгом синхронізації. Сам же ланцюг синхронізації складається з елементів двох типів - це реалізація логічного множення (операція And) і пристрій, що дублює значення свого одного входу на свої два виходи (елемент 1-2). Вихід останнього елемента And є входом для першого елемента 1-2. Самі елементи зв’язані один з одним структурою бінарного дерева. Пояснимо принцип його роботи. Якщо деякий процес дійшов до бар’єру, то у відповідному процесорному елементі у вхідний регістр синхронізації записується 1. Процесор не продовжить роботу даних до тих пір, поки у його вихідному регістрі синхронізації не буде 1. Якщо уважно переглянути структуру бар’єру, то можна помітити, що якщо хоча б на одному процесорному елементі у вхідному регістрі синхронізації буде 0, тобто процес ще не дійшов до бар’єру, то у всіх вихідних регістрах всіх процесорних елементів також будуть нулі і всі процеси будуть очікувати моменту, коли даний процес дійде до бар’єру.

Ці ж ланцюги в комп’ютерах даного сімейства можна використовувати і в наступних цілях. Наприклад, якщо замінити оператор множення на оператор логічного додавання, то ми отримаємо так звану "систему еврика". Тобто коли певний процес дійшов до точки бар’єру, то одиниця, записана у вхідний регістр синхронізації перейде на всі регістри всіх процесорних елементів. Тобто всі решта процесів "дізнаються" про те, що деякий процес уже завершив роботу. Такий метод використовується у різних задачах, наприклад, в задачах пошуку.

Обчислювальні кластери

В комп’ютерній термінології поняття кластер може мати декілька значень. Наприклад, кластерна технологія використовується для покращення швидкодії та надійності серверів баз даних та веб-серверів. Ми ж надалі будемо мати на увазі тільки обчислювальні кластери, тобто кластери, що використовуються для проведення обчислень.

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

Взагалі кажучи, обчислювальний кластер - це є об’єднання декількох комп’ютерів в рамках єдиної мережі для вирішення конкретної задачі. Кожен комп’ютер може працювати під своєю власною операційною системою: Windows-NT, Linux, Unix, тощо.

Склад і потужність вузлів може змінюватися в рамках єдиного кластера. Кожен вузол може бути як однопроцесорною машиною, так і багатопроцесорною SMP.

Комунікаційні середовища кластерних систем

Існує багато варіантів створення та побудови кластерних систем. Всі вони відрізняються між собою комунікаційним середовищем, що використовується для передачі даних між вузлами. Спочатку використовувався стандарт Ethernet зі швидкістю 10Мбіт/с.

В наш час досить поширеною є технологія Fast Ethernet зі швидкістю 10Мбіт/с. Проте великі накладні витрати даної технології при передачі даних не дозволяють створити універсальні обчислювальні кластери. Як альтернативу розробники можуть використовувати технології Gigabit Ethernet, Clan, Myrinet, Servernet та інші.

При передачі даних основні характеристики, що впливають на продуктивність це - латентність та пропускна здатність мережі. Латентність - це час, який потрібен, щоб повідомлення було підготовлене до відправки. Пропускна здатність мережі - це кількість інформації, що може бути передана за одиницю часу. Якщо обмін інформацією між вузлами складається з великої кількості невеликих повідомлень, то визначну роль в обміні даними буде грати латентність. Якщо повідомлення одне і велике, то визначну роль в обміні даними буде грати пропускна здатність.

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

Розглянемо параметри, які впливають на продуктивність комп’ютерів даного класу:

Наявність фрагментів програми, які можна розпаралелювати. Якщо в програмі досить великі фрагменти послідовного коду, то розраховувати на збільшення продуктивності не варто.

Так як фізична пам’ять є розподіленою між вузлами системи, то для доступу процесора до віддалених фрагментів пам’яті використовується система повідомлень, а отже визначну роль будуть грати або латентність або пропускна здатність. Тому для створення додатків для таких кластерних систем потрібно розробити систему повідомлень та розглянути, як ці повідомлення будуть передаватися мережею, і які чинники будуть основними.