Серверы 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.

Литература
  1. Михаил Кузьминский, Архитектура S2MP - свежий взгляд на cc-NUMA. // Открытые системы, 1997, № 2.
  2. Михаил Кузьминский, "Кирпичные" компьютеры. Серверы нового поколения архитектуры NUMA компании SGI. // Открытые системы, 2000, № 9.
  3. Михаил Кузьминский, Архитектура серверов HP Superdome. // Открытые системы, 2000, № 11.
  4. Михаил Кузьминский, Особенности архитектуры серверов Compaq GS. // Открытые системы, 2001, № 1.
  5. Altix 3000 Global Shared-Memory Architecture, Pipeline, Jul.-Sept. 2003, Silicon Graphics.