Серверы SGI Altix: ccNUMA на базе процессоров Itanium 2
Мировых компьютерных грандов из числа разработчиков-производителей средств вычислительной техники можно условно разделить на три группы: те, кто разрабатывает «все целиком», от процессоров до компьютеров; те, кто разрабатывает только компьютеры; и те, кто разрабатывает только процессоры. SGI относится к числу тех немногих, которые «разрабатывают все». Однако последние поколения микропроцессоров SGI R1x000 явно не отличались сверхвысокими показателями производительности, и бизнес компании складывался не очень удачно. Представляется, что с переходом SGI к активному использованию в своих компьютерах процессоров архитектуры IA-64 компания получает реальные шансы вернуть себе утраченные позиции.

SGI традиционно отличалась умением строить прекрасные графические станции и графические суперкомпьютеры, а также многопроцессорные системы архитектур SMP и ccNUMA с очень большим числом процессоров [1, 2]. SGI первой из числа крупнейших компьютерных компаний вышла на массовый рынок с ccNUMA-серверами Origin 2000. И когда конкуренты также выпустили собственные ccNUMA-системы [3, 4], SGI уже перешла ко второму поколению серверов данной архитектуры, представив Origin 3000.
Недостаточно высокие характеристики производительности — по сравнению с предложениями конкурентов — используемых в серверах Origin процессоров R1x000 отодвинули эти системы вниз в табели о рангах (в частности, на тестах Linpack). Выпуск серверов Altix 3000 [5] представляется успехом компании, поскольку удалось соединить мастерство инженеров SGI в разработке компьютерных систем с высокими техническими характеристиками процессоров Intel Itanium 2. Последние модели Itanium 2/Madison с тактовой частотой 1,5 ГГц и кэшем третьего уровня емкостью 6 Гбайт, которыми может комплектоваться Altix 3000, являются лидерами по производительности с плавающей запятой. По целочисленной производительности процессоры Itanium 2/1,5 ГГц в Altix также обгоняют все RISC-микропроцессоры за исключением Power4+. При этом увеличение производительности по сравнению с собственными процессорами R14000 на целых числах составляет примерно два раза, а для чисел с плавающей запятой — четыре.
Конечно, оборотной стороной медали становится более явная конкуренция: серверы на базе Itanium 2 выпускает не одна компания, и имеются даже ccNUMA-системы на базе Itanium 2 — HP Superdome.
Архитектура Altix 3000
Компьютеры Altix 3000 получили в наследство от Origin 3000 прекрасные средства модульности. Системы Altix строятся из так называемых «кирпичей» (brick). — модулей разной высоты, монтируемых в стандартную 19-дюймовую стойку и соединяемых посредством кабелей. В таблице 1 приведены основные типы кирпичей Altix 3000. Все эти модули размещаются в стойке высотой 17U (Altix 3300, не использует маршрутизаторов) или 40U (Altix 3700, старшие модели).
![]() |
Рис. 1. Блок-схема С-кирпича |
Рассмотрение модулей, определяющих структуру компьютера, естественно начать с «вычислительных» кирпичей [5]. Каждый С-кирпич (рис. 1) содержит 4 процессора Itanium 2 и состоит из двух узлов. Узлы соединены между собой дуплексными каналами NUMAlink4, с общей пропускной способностью 6,4 Гбайт/с на канал. Два коммутатора SHUB, связывающие основные архитектурные компоненты узлов, могут подсоединяться к 8-портовым коммутаторам через каналы NUMAlink3 с пропускной способностью 3,2 Гбайт/с в дуплексном режиме, которые применялись в Origin 3000 [2]. Это позволяет строить системы, содержащие до 512 процессоров; предлагаемая топология — «толстое» дерево, хотя возможны и другие топологии. Применяемая архитектура NUMAflex имеет возможность поддерживать даже 2048 процессоров [5].
Особенностью Altix, обеспечивающей сохранение инвестиций пользователей, является возможность использования разных процессоров семейства Itanium 2 в разных кирпичах (в пределах одного кирпича все процессоры должны быть одинаковы).
Микросхема SHUB, действующая как коммутатор между микропроцессорами, оперативной памятью, каналами ввода-вывода и межсоединением, а заодно являющаяся контроллером оперативной памяти, имеет 4 порта в памяти. Каждый узел в С-кирпиче, кроме двух процессоров, содержит 16 слотов для обычных модулей памяти DIMM DDR266/320/400, организованных в группы по 4 модуля. Одна группа соответствует горизонтальному ряду слотов DIMM на рис. 1. В каждом узле должно быть минимум по одной группе; соответственно в каждом С-кирпиче — минимум две группы. Изменение емкости памяти в С-кирпиче происходит путем добавления или изъятия пары групп (8 модулей), по одной на узел. Такой подход обеспечивает сохранение максимальной пропускной способности памяти за счет применения всех доступных каналов памяти.
![]() |
Рис. 2. Связь четырех С-кирпичей в 16-процессорном компьютере Altix с двухсторонней схемой маршрутизации |
Оперативная память располагается на специальных дочерних платах, по 8 DIMM на плату. Всего в С-кирпиче может быть 4 дочерние платы; допустимая емкость оперативной памяти в С-кирпиче — от 4 до 16 Гбайт. Этот расчет предполагает применение двухсторонних модулей DIMM емкостью 0,5 Гбайт, в которых используются 256-мегабитные микросхемы памяти (32Мх8бит), расположенные по 9 штук с каждой стороны модуля (учитывая коды ECC). Возможно также применение модулей DIMM емкостью 1 Гбайт и 2 Гбайт (последние пока не поставляются) с соответствующим увеличением емкости памяти в С-кирпиче. Для расширения емкости памяти SGI предлагает также специальные М-кирпичи, которые аналогичны С-кирпичам, но не содержат микропроцессоров [5].
В С-кирпиче имеется также контроллер первого уровня, служащий для целей диагностики и контроля, USB-порт для связи с контроллером второго уровня (рис. 3), который обслуживает уже не один кирпич, а систему с 16 или 32-процессорами, и последовательный порт, к которому может напрямую подсоединяться SGI-консоль.
![]() |
Рис. 3. Сеть управления Altix (16-процессорная система) |
В Altix имеется специальная сеть управления системой, которая может быть более сложной, чем представлено на рис. 3, и включать несколько контроллеров второго уровня, подсоединенных к концентратору Ethernet. Возможно также применение контроллеров третьего уровня. SGI-консоль представляет собой сервер монтируемый в стойку SGI 1100 высотой 1U, на котором работает специальное программное обеспечение SGI (Сonsole Manager, Performance Co-Pilot), а также средства управления и мониторинга, работающие с контроллерами первого и второго уровня. SGI-консоль используется также для разбиения сервера Altix на разделы и управления кластерными конфигурациями.
Столь гибкая многоуровневая система, которая масштабируется при наращивании конфигурации Altix 3000 и использует индустриальные стандарты (последовательные порты, USB, Ethernet), способствует увеличению надежности системы и является очевидным преимуществом данных компьютеров.
Коммутаторы и топология межсоединения
R-кирпичи содержат в себе коммутаторы, которые SGI традиционно, еще со времени появления Origin 2000, называет маршрутизаторами. Эти маршрутизаторы могут соединять между собой С-кирпичи (коммутаторы первого уровня), или, в более крупных конфигурациях, другие коммутаторы первого уровня. В последнем случае в SGI используют название «метамаршрутизаторы».
Маршрутизаторы являются неблокирующимися 8-портовыми коммутаторами. Кроме ASIC-микросхемы, реализующей собственно коммутатор, R-кирпич содержит контроллер первого уровня и USB-концентратор. На задней панели R-кирпича имеется восемь 100-контактных коннекторов для подсоединения кабелей NUMAlink, из которых четыре могут использоваться для соединения с С-кирпичами. Через эти четыре разъема передаются также USB-сигналы для обеспечения функций управления и контроля. Кроме того, имеется один USB-порт для соединения контроллера первого уровня с контроллером второго уровня (рис. 3).
![]() |
Рис. 4. Межсоединение в конфигурациях Altix без коммутаторов |
Возможные способы организации межсоединения для различных конфигураций систем иллюстрируют рис. 4-6. На рис. 4 представлены возможные конфигурации без использования маршрутизаторов. Рис. 5 отвечает одностоечным конфигурациям с «двухсторонней» (dual-plane) топологией [5], при которой применяется дублирование соединений между С-кирпичами за счет использования пар маршрутизаторов. На рис.6 представлены многостоечные конфигурации (также с двухсторонним соединением).
![]() |
Рис. 5. Одностоечные конфигурации с двухсторонней топологией |
В определенном смысле слабой стороной такого построения связей между C-кирпичами является степень масштабирования половинной пропускной способностью системы с ростом числа процессоров (напомним, речь идет о той пропускной способности, с которой одна половина системы может обмениваться данными с другой половиной системы; таблица 2). Это означает возможность резкого понижения производительности Altix в случае, если обращения процессоров к памяти происходят из другой половины системы. Однако это представляется маловероятным, учитывая механизмы распределения и перераспределения физической оперативной памяти в ccNUMA-системах, поддерживаемые операционные памяти от SGI (для Altix это ОС Linux с поддержкой ccNUMA в ядре). Применение этих механизмов позволяет обеспечить высокий уровень локальности обращений к оперативной памяти.
Подсистема ввода-вывода
C-кирпич имеет два дуплексных канала ввода-вывода Xtown2 (по одному на узел) с пропускной способностью 1,2 Гбайт/с в каждом направлении. В Altix всегда имеется хотя бы один С-кирпич и хотя бы один IX-кирпич, обеспечивающий базовые средства ввода-вывода (в нем располагается загрузочное устройство). IX-кирпич имеет два порта каналов XTown2, работающих на частоте 600 МГц; каждый из них может быть соединен с портом XTown2 в С-кирпиче. Напомним, что XTown2 — это дифференциальный канал, использующий протокол CrossTalk [1, 2]. Задача IX-кирпича — поддержание системы шин PCI-X.
Всего в IX-кирпиче имеется 12 слотов PCI/PCI-X, относящихся к 6 соответствующим шинам. На каждой шине можно использовать или один слот PCI-X на частоте 133 МГц, или два слота PCI-X с частотами 100 МГц или 66 МГц, или два слота PCI с частотами 66 МГц или 33 МГц.
Помимо PCI-слотов IX-кирпич содержит базовую PCI-плату IO9, одну или две двухпортовые платы с последовательными портами, два отсека для низкопрофильных SCSI-дисков, а также отсек для низкопрофильного сменного накопителя (стандартно устанавливается DVD-ROM, который используется в режиме чтения). Базовая плата IO9 — это специальная многофункциональная полноразмерная PCI-плата, работающая на частоте 33/66 МГц с шириной шины 32/64 бита. Она содержит порт Ethernet, два порта Ultra3 SCSI (один для внутренних, и один — для внешних дисков), 1 IDE-порт к съемному устройству, 4 порта RS-232C и два порта PS/2.
Дополнительные шины PCI могут быть обеспечены подключением PX-кирпичей, каждый из которых имеет 12 PCI/PCI-X слотов в комбинациях, рассмотренных выше для IX-кирпича. Как и IX-кирпич, PX-кирпич имеет два порта XTown2. Среди поддерживаемых PCI-плат — платы от QLogic (двухпортовые платы UltraSCSI в дифференциальным варианте, двухпортовые платы Ultra160 SCSI, одно- и двухпортовые платы Fibre Channel с волоконно-оптическими кабелями), а также платы 3Com Tigon3 для медного и волоконно-оптического варианта Gigabit Ethernet.
D-кирпичи [5] представляют собой корпус, в который монтируются отдельные жесткие диски (общим числом до 16, минимум — два диска), но они могут конфигурироваться как RAID-массив. Обеспечивается горячая замена дисков. D-кирпичи поддерживают возможность иметь две петли Fibre Channel. В Altix может применяться также 8-дисковый модуль TP900, обеспечивающий одну шину Ultra160 SCSI с 8 дисками, или две такие шины, по 4 диска на шину.
Кроме того, Altix может комплектоваться ленточными накопителями, которые могут входить в состав поставляемых с Altix ленточных библиотек, содержащих от 10 до 700 слотов для картриджей с общей емкостью библиотеки до 270 Тбайт.
Заключение
Примечательное свойство SGI Altix — использование ОС Linux. Большинство доработок, выполненных разработчиками SGI, в том числе, и изменения, которые внесены в ядро операционной системы, общедоступны. SGI удалось продемонстрировать отличные возможности масштабирования этой операционной системы — вопреки часто высказываемым замечаниям о плохом качестве ядра Linux именно с точки зрения масштабирования. Учитывая, что уже сейчас поставляются системы Altix с числом процессоров до 128, а к октябрю будут доступны конфигурации с 512 процессорами, Altix становятся самыми мощными ccNUMA-компьютерами на базе Itanium 2, равно как и самыми «крупными» по числу процессоров компьютерами, работающими с ОС Linux.
Литература
- Михаил Кузьминский, Архитектура S2MP - свежий взгляд на cc-NUMA. // Открытые системы, 1997, № 2.
- Михаил Кузьминский, "Кирпичные" компьютеры. Серверы нового поколения архитектуры NUMA компании SGI. // Открытые системы, 2000, № 9.
- Михаил Кузьминский, Архитектура серверов HP Superdome. // Открытые системы, 2000, № 11.
- Михаил Кузьминский, Особенности архитектуры серверов Compaq GS. // Открытые системы, 2001, № 1.
- Altix 3000 Global Shared-Memory Architecture, Pipeline, Jul.-Sept. 2003, Silicon Graphics.