Ви є тут

Публікації

Altix від SGI (Silicon Graphics Inc)

Версія для друкуВерсія для друку

Провідною моделлю SGI на сьогодні (початок 2006 року) є Altix 4000 серії. Ці системи мають аналогічну до Altix 3000 серії архітектуру типу ccNUMA, але відрізняються тим, що мають вищу щільність монтажу (у вигляді вертикальних блоків-лез, в той час як 3000 серія виконана у вигляді горизонтальних, більших за розміром модулів). Обидві серії побудовані на базі системної архітектури SGI® NUMAflex™, яка вперше була застосована в моделі Origin 3000. Серія Altix, на відміну від Origin, побудована на стандартних промислових процесорах Intel Itanium2 та OS Linux.

Розробникам NUMAflex вдалося створити надзвичайно гнучку архітектуру, в якій конфігурація створюється з окремих блоків, які в SGI називаються «цеглинками» (brick). Особливістю NUMAflex, порівняно з іншими системами з ccNUMA архітектурою є те, що SGI вдалося відмовитися від високовартісних компонент типу backplane/midplane, і використати мережеву топологію, а саме топологію «товстого дерева» (fat tree).
NUMAflex використовує SGI® NUMA (cachecoherent, nonuniform memory access) протокол, який апаратно реалізований в системі для забезпечення максимальної швидкодії та модульного дизайну. Важливим є те, що NUMAflex архітектура забезпечує незалежну масштабованість в «трьох вимірах», а саме: по кількості процесорів, по об’єму оперативної пам’яті, по пропускній здатності системи вводу-виводу.

Ключовим компонентом NUMAflex архітектури є контролер ASIC (Application Specific Integrated Circuit), який в SGI називається SHUB. Він під’єднується через власні інтерфейси до процесора Itanium2, оперативної пам’яті, підсистеми вводу-виводу та до інших підсистем NUMAflex архітектури, наприклад, таких як RASC (Reconfigurable Application Specific Circuit – детальний опис особливої компоненти архітектури наведений нижче) та інших SHUB.

Модулі системи Altix мають наступне призначення:
1. Обчислювальний модуль (C-Brick) може містити до 4-х процесорів Intel Itanium2 та невеликий об’єм ОЗП (до 96ГБ ОЗП в 3000-й серії) (Малюнок 1). У системі в рамках одного сервера може бути встановлено (без кластеризації) до 512 процесорів в рамках одного образу операційної системи Linux. Таке обмеження накладається самою операційною системою, а не можливостями архітектури. У 3000-й серії можна об’єднувати до 2048 процесорів в рамках одного сервера на базі NUMAflex архітектур та міжвузлового інтерфейсу NUMAlink, а в 4000-й до 10240 процесорів. Так як ОС Linux не масштабується на сьогодні (початок 2006 року) більш як на 512 процесорів, то SGI пропонує використовувати спеціальні бібліотеки для об’єднання кількох машин в один сервер, або як називає сама компанія, – super cluster.

2. Модуль оперативної пам’яті (M-Brick) являє собою C-Brick без можливості встановлення процесорів (може містити до 96ГБ ОЗП в 3000-й серії). Практично система повинна мати принаймні один C-Brick, але може мати необхідну кількість M-Brick (до 24Тбайт ОЗП в 3000-й серії та до 60Тбайт в 4000-й). Схема ієрархії доступу процесорів Itanium2 до пам’яті показана на малюнку 2.

3. Модуль маршрутизації(R-Brick - 8-port NUMAlink™ 3 router) використовується для побудови фабрики комутації між чисельними C-Brick та M-Brick.

4. Модулі вводу-виводу IX-brick (базовий модуль), PX-brick (модуль PCI-X розширення) та D-Brick (модуль JBOD – Just Bunch of Disks для встановлення вінчестерів).

 
 
 
 
Малюнок 1. C-Brick.
Малюнок 1. C-Brick.
 
 
 
 
Малюнок 2. Ієрархія пам’яті в процесорах Itanium2.
Малюнок 2. Ієрархія пам’яті в процесорах Itanium2.
 
Давайте розглянемо ключові елементи архітектури NUMAflex окремо.
Cache Coherency. Спочатку розглянемо одну з найважливіших особливостей архітектури зі спільною оперативною пам’яттю – підтримку когерентності кеш в процесорах. Протокол, реалізований в SHUB ASIC має інтерфейси одночасно для операцій «підглядування» (snooping) процесора Itanium2 та класичної схеми операцій на базі директорій, яка працює через фабрику NUMAflex. При використанні операцій «підглядування» кожна транзакція повинна бути зареєстрована/побачена всіма процесорами системи для підтримки когерентності кеш пам’яті, що може спричинити значні затримки у системах з великою кількістю процесорів. Однак в схемі підтримки когерентності кеш пам’яті на базі директорій, лише процесори, що на даний момент використовують конкретну адресну лінію (визначений адресний простір) сповіщаються про виконання операцій доступу в рамках цього адресного простору. Такий підхід значно зменшує кількість інформації, яку потрібно передавати в рамках системи для підтримки когерентності кеш пам’яті.
Отже, так як в системі Altix апаратно підтримується когерентність кеш пам’яті, то доступ користувачів до спільної оперативної пам’яті здійснюється прозоро для будь-якого процесора через високошвидкісні комунікації мережі NUMAflex архітектури.

Interconnect Network. Мережа міжвузлового зв’язку архітектури NUMAflex для Altix побудована, як вже зазначалось, по топології «товстого дерева» (fat tree) на базі інтерфейсу NUMAlink 4. На малюнку 3 показана мережа в 512-процесорній конфігурації. Кола на малюнку відображають модулі R-Brick, а 128 прямокутників по центру діаграми – C-Brick.
Найсучасніше покоління інтерфейсу NUMAlink 4, використовується сьогодні в серверах Altix 3000 та 4000-ї серії. Порівняльна табличка параметрів швидкодії NUMAlink з 2-го по 4-те покоління вказана в Таблиці 1.
 

 
 
Таблиця 1. Характеристики швидкодії покоління інтерфейсів NUMAlink.
Таблиця 1. Характеристики швидкодії покоління інтерфейсів NUMAlink.
 
В NUMAlink 4 сигнал передається зі швидкістю 800Mbits/s в кожному напрямку, причому дані передаються одночасно в кожному напрямку по 40 біт, в той час як в третьому поколінні передавалось одночасно лише 20 біт і причому лише в односторонньому режимі. Таким чином, в одну сторону третє покоління забезпечувало 1.6Gbytes/s, причому дуплексного режиму не було, а четверте покоління інтерфейсу забезпечує 3.2Gbyte/s в одну сторону та 6.4Gbytes/s в дуплексному режимі. Рівень маршрутизації NUMAlink 4 було розширено для підтримки до 8 тисяч процесорних сокетів та 10 Тбайт оперативної пам’яті.
Сьогодні розробляється новий інтерфейс NUMAlink 5 для використання в системах наступних поколінь. На фізичному рівні пропускна здатність інтерфейсу буде значно збільшена, в тому числі розробники обіцяють зменшити затримки інтерфейсу. Рівень маршрутизації нового покоління інтерфейсу буде мати нові можливості багатовимірного масштабування системи. Ці нові можливості забезпечать підключення різноманітних обчислювальних елементів, таких як ПЛІС (FPGAs), графічних модулів, векторних обчислювальних модулів, оперативної пам’яті з вмонтованими процесорами тощо.
Важливою відмінністю між NUMAlink та конкурентними інтерфейсами є те, що NUMAlink напряму під’єднана до інфраструктури пам’яті, на відміну від інших інтерфейсів, які під’єднуються до системи вводу-виводу. Як результат, конкуруючі інтерфейси, такі як Infiniband, Myrinet, Quadrics використовують адресні схеми підсистеми вводу-виводу, в той час як NUMAlink підтримує глобальну адресність пам’яті через процесорні загрузки-вигрузки в глобальний адресний простір спільної пам’яті. Також слід звернути увагу на інші унікальні особливості NUMAlink мережі: прямий доступ до пам’яті зменшує час доступу через інтерфейс до пам’яті іншого вузла. Такі інтерфейси, як Infiniband, Myrinet, Quadrics зазвичай під’єднуються до системи через PCI роз’єми підсистеми вводу-виводу. Інтерфейс PCI додає затримки, а також обмежує пропускну спроможність інтерфейсу. У той же час NUMAlink є частиною чіпсету SHUB, який напряму під’єднаний до процесора та пам’яті, відповідно на його використання не впливають недоліки шини вводу-виводу.
NUMAlink також можна використовувати для передачі повідомлень, таким чином використовуючи програмне забезпечення, яке вже написано в моделі передачі повідомлень, та може мати від такої моделі ті чи інші переваги. При використанні бібліотек MPI на інтерфейсі NUMAlink 4 досягаються рекордні показники затримки та пропускної здатності., а саме затримка в 1 мікросекунду та пропускна здатність в 3.2Гбайт/с.
RASC (Reconfigurable Application Specific Computing) є одним з важливих елементів суперкомп’ютерної платформи від SGI. Сама концепція використання апаратних прискорювачів для обчислень не є новою для індустрії. Наприклад, ще моделі SGI Origin 2000 та 3000 використовували масиви DSP процесорів для апаратного прискорення ШПФ (Швидкого Перетворення Фур’є), які давали прискорення порівняно з традиційними процесорами в 40 разів. Також в індустрії обчислювальної техніки були спроби використовувати ПЛІСи, але залишалися проблемними такі аспекти їх використання, як інтерфейси до стандартних обчислювальних платформ, зручні системи програмування. Також слід зауважити, що значних досягнень індустрія ПЛІСів досягнула лише в останні декілька років і сьогодні доступні версії ПЛІС з наступними характеристиками:
- 500MHz частота
- До 11Мбіт/с введення-виведення даних
- Вмонтовані в ядро скалярні процесори
- 90нм технологічний процес, який гарантує низьке споживання електричної енергії
- Пропускна здатність пам’яті Терабайти/с
- Швидкодія 10-ки Трільйонів операцій в секунду

SGI практично об’єднала можливості нових ПЛІСів та надзвичайних можливостей вводу-виводу даних системи Altix, таких як NUMAlink інтерфейс та великі об’єми оперативної пам’яті. SGI RASC значно збільшує обчислювальні можливості кількох дуже важливих класів прикладних задач в секторі високошвидкісних обчислень. На малюнку 4 можна побачити структурну схему модуля SGI RASC.

 
 
Малюнок 4. Діаграма та специфікації модуля SGI  SA-Brick.
Малюнок 4. Діаграма та специфікації модуля SGI SA-Brick.
 
Рішення RASC від SGI можуть використовуватися спеціалістами з різним рівнем знань архітектури ПЛІС, дякуючи програмному оточенню, яке зручно інтегрується зі стандартною, добре відомою у світі багатьом програмістам мовою C та стандартними інструментами OS Linux. Слід також зауважити, що платформа RASC сьогодні проходить тестові випробування для таких прикладних задач, як обробка зображень та шифрування. У недалекому майбутньому компанія очікує, що ця платформа стане провідною у світі реконфігурованих обчислювальних систем, які є дуже важливими для багатьох задач у сфері високошвидкісних обчислень.