Пожалуй, сегодня уже нет необходимости описывать основные особенности и преимущества использования для организации многопроцессорных систем архитектуры ccNUMA (cache coherent non uniform memory architecture — «архитектура неоднородного доступа к памяти с когерентным кэшем»): она стала такой же «классикой», как и архитектура SMP (symmetrical multiprocessing — «симметричная многопроцессорная обработка»). Представительство ccNUMA-архитектур на рынке высокопроизводительных многопроцессорных серверов постепенно растет. С подробностями ccNUMA читатель может найти в публикациях [1-5].
С учетом вышесказанного появление мощных многопроцессорных систем Superdome компании Hewlett-Packard не представляется чем-то неожиданным. Стоит обратить внимание на следующее обстоятельство: практически за последние полгода мы стали свидетелями появления ccNUMA-серверов производства Compaq Computer, SGI и Hewlett-Packard соответственно, причем их архитектуры и даже некоторые технические характеристики оказались весьма близкими друг к другу.
С точки зрения автора, главное, чем отличаются друг от друга эти мощные серверы (конечно, если отвлечься от устанавливаемого на них программного обеспечения) - это устанавливаемые в них 64-разрядные процессоры RISC-архитектуры. В НР Superdome сейчас используются микропроцессоры РА-8600, являющиеся лидерами по пиковой производительности вычислений с плавающей запятой среди всех универсальных RISC-процессоров. Поэтому наш анализ архитектуры Superdome мы начнем с краткого рассмотрения РА-8600 и ближайших перспектив их развития.
Особенности микропроцессоров РА-8600
На сегодняшний день РА-8600 с тактовой частотой 552 МГц (именно они используются в НР Superdome) являются самыми мощными процессорами компании. Вместе с IBM Power 3 это единственные из современных суперскалярных RISC-процессоров, которые способны получать за один такт сразу 4 результата операций с плавающей запятой. Это достигается благодаря возможности одновременного выполнения в PA-8600 двух команд типа «умножить-и-сложить» (FMAC). Соответственно, их пиковая производительность в 4 раза выше тактовой частоты, т. е. составляет около 2,2 GFLOPS. По этому показателю они опережают все другие процессоры (включая Alpha 21264A/833 МГц с пиковой производительностью около 1,7 GFLOPS), кроме AMD Athlon, которые на частоте 1,2 ГГц имеют пиковую производительность 2,4 GFLOPS.
Уже из этих данных видно, что высокая тактовая частота сама по себе не является гарантией лидерства по производительности. Так, например, Pentium III, тоже перешагнувшие рубеж в 1 ГГц, имеют пиковую производительность с плавающей запятой в GFLOPS численно равную частоте, поскольку способны за один такт получать не более одного 64-разрядного результата с плавающей запятой. Конечно, наиболее интересной характеристикой является не пиковая производительность, а производительность на реальных приложениях. Интегральную же оценку дают стандартные тесты производительности.
Мы начали обсуждение с производительности с плавающей запятой, особенно важной в области научно-технических приложений. Классическим тестом для подобных приложений, особенно для суперкомпьютерных приложений, являются тесты Linpack. Сопоставительные данные, приведенные в таблице 1, показывают, что на этих тестах РА-8600/550 МГц (данные для HP Superdome отсутствуют, поэтому приводятся результаты HP N4000) опережают все другие процессоры на длинных векторах (N=1000), а на коротких (N=100) уступают лишь Alpha 21264/667 МГц в серверах Compaq ES40. Известно, что тесты Linpack хорошо «блокируются» в кэш-памяти, что, вероятно, и дает преимущество РА-8600: они имеют интегрированный кэш данных уникально большой емкости (1 Мбайт), работающий на частоте процессоре.
Разработчики приводят данные о производительности PA-8600/550 МГц на старых тестах SPEC95 (SPECint95/fp95 = 41,4/58,8 против 39,5/69,5 для Alpha 21264/731 МГц в AlphaServer GS). Интересно сравнить эти результаты с доступными данными для новых тестов SPEC2000. Для PA-8600/550 МГц в N4000 получены показатели SPECint2000/fp2000 = 379/369 против 540/662 для Alpha 21264A/833 МГц в AlphaServer ES40 и 442/335 для Pentium III/1 ГГц. Процессоры РА-8600 на тестах SPECfp2000 кроме Alpha 21264A уступают лишь IBM Power 3-II/375 МГц, продемонстрировавшим производительность в 382 единицы. Следует напомнить, что результаты этих тестов не есть характеристика только процессоров; данные SPEC2000 зависят также от компьютера, на котором прогонялись тесты.
Итак, с моей точки зрения, эти данные свидетельствуют, что только процессоры РА-8600 в последнее время успешно соперничали с Alpha за лидерство в производительности, на некоторых тестах опережая конкурента.
За счет чего при относительно невысокой тактовой частоте РА-8600 имеют столь высокую производительность. Общую информацию о микроархитектуре РА-8х00 можно найти в [6]; в [7] приведены данные о последних усовершенствованиях этого семейства микропроцессоров вплоть до РА-8700. По-моему, успеху РА-8600 способствуют два главных фактора: высокий уровень суперскалярности (числа выполняемых одновременно операций) и наличие интегрированного кэша большой емкости (кэш команд первого уровня на 512 Кбайт плюс кэш данных первого уровня на 1 Мбайт), работающего на частоте процессора. К этому следует добавить высокую точность предсказания переходов, усовершенствованный алгоритм замещения в кэше команд (квази-LRU) и др.
В следующем году следует ожидать появления PA-8700 с частотой выше 800 МГц, который будет производиться уже по 0,18-микронной технологии SOI (silicon on insulator — «кремний на изоляторе») с семислойными медными межсоединениями. При этом емкость кэша данных первого уровня возрастет до 1,5 Мбайт, а кэша команд первого уровня - до 750 Кбайт. Оба кэша будут использовать алгоритм замещения квази-LRU, и, как и в PA-8500/8600, будут 4-канальными наборно-ассоциативными. В PA-8700 будет применяться предварительная выборка данных в кэш и будут поддерживаться 44-разрядные физические адреса (адресация до 16 Тбайт) против нынешних 40 разрядов.
Как уже указывалось, PA-8700 является суперскалярным процессором. Он имеет 10 функциональных исполнительных устройств (2 АЛУ, 2 устройства сдвига, устройства с плавающей запятой — 2 для умножения и сложения, и 2 для деления/извлечения квадратного корня, а также 2 устройства загрузки регистров/записи в память). Высокий уровень параллельности выполнения команд поддерживается благодаря спекулятивному внеочередному выполнению команд с применением неблокирующейся кэш-памяти.
Дополнительную информацию о строении РА-8700 можно найти в [7]. Я обращаю особое внимание на PA-8700, поскольку эти процессоры, по заявлению представителей HP, будут использоваться в Superdome. Указанные выше характеристики РА-8700 позволяют предположить, что и эти новые процессоры будут в числе лидеров производительности.
Однако HP заявила также и о будущей поддержке в Superdome процессоров IA-64, правда, не уточняя, какого именно поколения (Itanium или McKinley). Скорее всего, Itanium, будет «пропущен», и Superdome будет поставляться с процессорами архитектуры IA-64 поколения не раньше McKinley (за McKinley последуют следующих Deerfield и Madison). Надо отметить, что серверы HP 9000 на базе IA-64 предполагается поставлять не только с операционной системой HP-UX, но и с Linux и Windows NT/64.
С другой стороны, семейство РА-8х00 на РА-8700 не оборвется. Уже объявлено о грядущей разработке процессоров РА-8800 с частотой не менее 1 ГГц и РА-8900 с частотой не менее 1,2 ГГц.
Архитектура и технические характеристики Superdome
После того, как мы рассмотрели процессоры, которые уже применяются в Superdome или будут в них применяться в дальнейшем, обратимся собственно к архитектуре Superdome. На рис. 1 дана схема построения узлов ccNUMA-систем Superdome (в терминологии HP эти узлы называются ячейками - cell) [8], а на рис.2 - общее строение серверов.
Рис. 1. Строение ячейки Superdome |
Начнем с ячеек, являющихся главным строительным блоком Superdome. Аналогичные архитектурные элементы в ccNUMA-системах SGI Origin 3x00 и Compaq AlphaServer GS320 называются соответственно узлами (node) и QBB (Quad Building Block). Эти блоки имеют весьма схожее строение, принципиально не отличающееся от представленного на рис. 1.
Основным элементом инфраструктуры этих блоков является коммутатор. В ячейке Superdome это - контроллер ячейки, в узле Origin 3x00 - концентратор (микросхема Bedrock), в QBB - локальный коммутатор (local switch). Этот коммутатор связывает между собой процессоры, оперативную память, подсистему ввода-вывода (I/O), а также обеспечивает соединение блоков между собой (т.е. содержит порты к «межсоединению»).
Во всех трех системах приходится по 4 процессора на узел. Более того, из данных таблицы 2 видно, что даже некоторые величины пропускной способности трактов (каналов) близки или совпадают. В дальнейшем мы обнаружим еще целый ряд подобных совпадений архитектурно-технических характеристик, а сейчас подробнее рассмотрим строение ячейки Superdome.
Прежде всего, следует отметить, что каждый процессор в ячейке имеет свой собственный выделенный порт в контроллере ячейки с пропускной способностью 1,6 Гбайт/с. Это предотвращает возможности конфликтов между процессорами за доступ к порту коммутатора, как это теоретически могло иметь место в серверах HP Класса V (см., например, [9]). Такие конфликты могут иметь место в SGI Origin 3x00, где пары процессоров разделяют системную шину, а две эти системные шины имеют по одному порту на концентраторе [2]. В AlphaServer GS320, напротив, каждый процессор, как и в Superdome, имеет свой порт на локальном коммутаторе.
Ячейка Superdome представляет собой небольшую SMP-систему; правда, средства ввода-вывода в ней отсутствуют — они являются внешними по отношению к ячейке и подсоединяются через порт ввода-вывода контроллера ячейки с пропускной способностью 1,6 Гбайт/с). Ячейки Superdome конструктивно реализованы в виде платы. Кроме процессора и контроллера ячейки, на этой плате располагается также оперативная память. Она построена на микросхемах SDRAM, имеет емкость от 2 до 16 Гбайт и наращивается порциями по 2 Гбайт. Вся память разделяется между двумя банками, каждый из которых имеет по 1 порту в контроллере ячейки с пропускной способностью, равной 1,6 Гбайт/с.
Контроллер ячейки имеет также порт к не блокирующемуся коммутатору (crossbar) с пропускной способностью 6,4 Гбайт/c [8].
Все приведенные данные о пропускной способности относятся к плате ячейки, работающей на частоте 200 МГц. Летом 2001 года ожидается выпуск плат с частотой 250 МГц; соответственно все показатели пропускной способности возрастут на четверть.
В завершение обсуждения строения ячейки упомяну еще об одном логическом блоке ячейки, не представленном на рис. 1, - о так называемом блоке процессорно-зависимой аппаратуры PDH. Этот блок содержит, в частности, некий аналог BIOS — загрузочное микропрограммное обеспечение. PDH для взаимодействия с процессором и памятью использует средства контроллера ячейки.
Рис. 2. Общее строение Superdome |
Два 8-портовых коммутатора располагаются на плате типа backplane и соединены между собой (см. рис. 2). К каждому такому коммутатору подсоединяется до 4 ячеек, итого одна плата backplane обеспечивает комплектацию до 8 ячеек (до 32 процессоров). Плата backplane вместе с ячейками и средствами ввода-вывода, которые будут описаны ниже, расположена в шкафу. Таких шкафов может быть два. Коммутаторы на платах backplane разных шкафов соединены между собой крест-накрест посредством кабелей.
Мы подошли к рассмотрению одной из важнейших характеристик любой ccNUMA-системы - отношению задержки по обращению в оперативную чужого (удаленного) узла к задержке по обращению в локальную память. Увеличение задержки по обращению в удаленную оперативную память в системах с ccNUMA-архитектурой является платой за принципиально более высокую масштабируемость по сравнению с SMP-архитектурой.
В идеале желательно, чтобы это отношение стало близким к 1:1. На практике же хотелось бы, чтобы программисты могли бы использовать обычные парадигмы распараллеливания, как в SMP-модели общей памяти, не заботясь о том, в каком узле физически расположены данные. А не заботиться об этом можно только тогда, когда не происходит существенного ухудшения производительности при работе с удаленной оперативной памятью.
Это отношение в последних ccNUMA-системах от Compaq и SGI, так же как и в HP Superdome, значительно улучшено. В Compaq AlphaServer GS320 оно составляет примерно 3:1 [3]. Задержка по обращению в локальную память (внутри ячейки) в Superdome равна всего 260 нс, что меньше, чем у конкурентов. Средняя задержка при обращении в память чужой ячейки, присоединенной на тот же коммутатор, в Superdome равна 320 нс, а между ячейками на разных коммутаторах - изменяется от 350 до 415 нс. Это соответствует отношению удаленной и локальной задержек примерно 2:1.
Впрочем, при сопоставлении разных компьютеров надо иметь в виду факт использования различных методик расчета задержек и соответственно различного смысла, вкладываемого в них разными фирмами. Не вдаваясь в подробности, сошлемся на оценку Дж. МакКалпина, автора известных тестов STREAM, которую он дал на телеконференции Usenet comp.arch. Он оценил отношения удаленной задержки к локальной для Superdome и Origin 3x00 как близкие, и несколько более хорошие, чем для AlphaServer GS320.
Целесообразно упомянуть здесь и о том, что свой вклад в задержку по обращению к удаленной памяти, расположенной в другом шкафу, вносят кабели, соединяющие коммутаторы разных шкафов (Рис. 2). Эта задержка пропорциональна длине кабеля. Для уменьшения задержки кабели желательно сделать короткими, что входит в противоречие с очевидными конструктивными устремлениями использовать, напротив, более длинные кабели. Эта проблема характерна не только для Superdome, но и, в частности, для Origin 3x00.
Любопытно, что все три новейшие ccNUMA-системы похожи друг на друга не только в части узлов, но и своими межсоединениями: в них используются либо иерархическая система коммутаторов (в GS320 - с 8-портовым глобальным коммутатором, аналогичном коммутаторам HP, на втором уровне), либо 8-портовые маршрутизаторы (Origin 3x00) - по сути, те же коммутаторы. Даже топологии соединения ccNUMA-узлов в этих системах имеют сходные черты.
Если обратиться к общим характеристикам системы, то для HP Superdome на сегодня анонсировано вдвое большее число максимально поддерживаемых процессоров - 64 против 32 для AlphaServer GS320, причем пиковая производительность с плавающей запятой у РА-8600 выше, чем у Alpha 21264 (таблица 2). Максимальная емкость оперативной памяти у обоих компьютеров равна 256 Гбайт. Что касается Origin 3x00, то этими серверами поддерживается до 512 процессоров, что фактически выводит старшие модели этих систем в более высокий класс, класс мощных суперкомпьютеров.
Рассмотрим теперь подсистему ввода-вывода Superdome. Все три производителя - HP, SGI и Compaq - пошли в своих новых ccNUMA-системах на то, чтобы до той или иной степени вынести средства ввода/вывода из узлов ccNUMA. Но лишь HP и SGI сделали это полностью: в их ccNUMA-узлах имеются только порты ввода/вывода. Подсистема ввода/вывода в Superdome вынесена из платы ячейки и располагается на отдельных модулях.
Каждый модуль ввода/вывода содержит микросхему контроллера ввода/вывода, которая связана с ячейкой каналом с пропускной способностью 1,6 Гбайт/с. Кроме этого контроллера и собственного источника питания, модуль ввода/вывода включает 12 слотов PCI, причем каждый из слотов находится на своей 64-разрядной шине. 8 слотов PCI имеют частоту 33 МГц при пропускной способности шины PCI в 265 Мбайт/с; 4 слота PCI расположены на 66-мегарцевых, вдвое более быстрых шинах.
Модули ввода-вывода обычно располагаются в тех же шкафах, что и ячейки (рис. 2). Всего в каждом из этих шкафов может разместиться до 4 модулей (сardcage) ввода/вывода. Напомним, что каждый из двух возможных шкафов Superdome содержит до 8 ячеек. Модули ввода/вывода могут подсоединяться не к каждой ячейке, однако в максимальной конфигурации из расчета «один модуль ввода/вывода на каждую ячейку» пространства внутри этих шкафов не хватит. Поэтому может поставляться также один шкаф расширения ввода/вывода, в котором размещаются еще до 8 модулей ввода/вывода. рис. 2 в этом смысле некорректен: на нем для наглядности все модули ввода/вывода изображены в двух шкафах. На самом деле часть модулей, соединения с которыми помечены не сплошной линией, а с помощью тире, размещаются в третьем шкафу.
Несложно подсчитать, что общее число слотов PCI в максимальной конфигурации Superdome составит 12*16=192 слота. Интересно, что и число слотов PCI в Superdome оказалось близким к числу слотов PCI в GS320 (их там 224). Для сравнения, предыдущие флагманы семейства серверов HP 9000, 32-процессорные серверы Класса V, располагали всего 28 слотами PCI при пропускной способности ввода/вывода, равной 1,9 Гбайт/с.
Как и в серверах Класса V, в Superdome предусмотрены исключительно внешние, а не внутренние жесткие диски. Общая емкость дискового пространства в Superdome может превышать 100 Тбайт.
Средства обеспечения высокой готовности
Все современные многопроцессорные серверы ccNUMA-архитектуры предлагаются вместе с рядом аппаратных и программных средств, повышающих их отказоустойчивость и позволяющих создавать системы высокой готовности (HA — High Availability). Классическим архитектурным приемом построения HA-систем является, кластеризация.
В Superdome наличествует «джентльменский» набор подобных особенностей. Прежде всего, это избыточные компоненты, предлагаемые по схеме «N+1», с возможностью горячей замены. Они включают, в частности, вентиляторы шкафов и модулей ввода/вывода, и блоки питания. Возможна замена плат PCI в оперативном режиме (аналогичным свойством обладает Origin 3x00); планируется обеспечить такую же замену для плат ячеек.
Оперативная память и основные пути данных в Superdome защищены кодами ECC, а данные ввода/вывода контролируются по четности. Предусмотрены развитые средства мониторинга и диагностики, в том числе с использованием Service Management Station, контролирующей, в частности, состояние полузаказных микросхем. Наконец, подобно Origin 3x00 и AlphaServer GS, в Superdome поддерживается механизм разбиения на разделы.
Технология разбиения на разделы была подробно рассмотрена в предыдущем выпуске журнала «Открытые системы» [10, 11]. Месяц назад мы еще не располагали детальной информацией об этих особенностях Superdome, поэтому для полноты картины опишем систему разделов Superdome здесь. В этих серверах предусмотрено два типа разделов: аппаратные (nPartition) и программные (Virtual Partition). Аналогичные типы разделов имеются в AlphaServer GS320.
С точки зрения построения HA-систем наибольший интерес представляет механизм nPartition. Минимальной единицей таких (физически изолированных) разделов является ячейка. В разных разделах этого типа могут работать разные операционные системы. Недостатком nPartition по сравнению с разделами Origin 3x00 может оказаться наличие платы backplane как возможной общей точки сбоя.
Виртуальные разделы, как мне кажется, целесообразно применять в первую очередь для целей управления рабочей нагрузкой. Однако они могут работать с разными версиями HP-UX 11i, что позволяет использовать виртуальные разделы и для целей модернизации ОС и других компонентов системного программного обеспечения.
Для того чтобы обеспечить возможность функционирования виртуальных разделов, над аппаратурой введен дополнительный уровень - монитор виртуальных разделов. Из обычного для HP начального загрузчика ISL происходит не прямая загрузка HP-UX, а сперва загружается монитор виртуальных разделов, а уже из него - операционная система этих разделов. Экземпляры HP-UX используют средства монитора виртуальных разделов.
Виртуальный раздел создается из командной строки (в будущем планируется предложить графический интерфейс). Каждому виртуальному разделу приписываются определенные ресурсы, в том числе не менее одного диска (для загрузки), не менее одного процессора и сетевая плата. Ресурсы раздела включают в себя также оперативную память. Всего на базе Superdome можно организовать до 64 виртуальных разделов. В планах HP - поддержка этого типа разделов не только для HP-UX 11i, но и для операционных систем Linux и Windows.
Цена вопроса
В завершение хотелось бы сказать и оригинальной системе ценообразования (iCoD), которая ранее уже применялась HP по желанию заказчика, а для Superdome стала стандартной. Все ячейки в поставляемых серверах сразу полностью «заселены» процессорами, даже если пользователь столько процессоров и не заказывал. Пользователь может в любой момент активизировать работу с дополнительными процессорами, заплатив в HP дополнительно.
Что касается выводов, относящихся к архитектуре высокопроизводительных серверов, то можно констатировать, что общей тенденцией стало применение в наиболее мощных многопроцессорных серверах ccNUMA-архитектуры с узлами, состоящими из небольшого числа процессоров. Обычно их в узле 4 (столько же, кстати, предусмотрено и в узлах серверов от Data General и IBM/Sequent NUMA-Q на платформе Intel x86). Причины такого стремления к «маленьким» узлам рассмотрены, в частности, в [2]. HP отказалась не только от больших узлов, но и от межсоединения SCI, применяющегося в серверах Convex SPP. Все новые ccNUMA-серверы, как правило, имеют средства обеспечения высокой готовности и поддерживают разбиение на разделы.
Михаил Кузьминский — старший научный сотрудник Центра компьютерного обеспечения химических исследований РАН.
Литература
1. М. Кузьминский, «Открытые системы», 1997, № 2, c. 14
2. М. Кузьминский, «Открытые системы», 2000, № 9, c. 10
3. М. Кузьминский, «Computerworld Россия», 2000, № 27-28
4. Е. Коваленко, «Открытые системы», 1997, № 2, c. 6
5. М. Кузьминский, «Computerworld Россия», 1998, № 31
6. М. Кузьминский, «Открытые системы», 1997, № 3, c. 6
7. PA-RISC 8x00 Family of Microprocessors with Focus on PA-8700. Technical Whitepaper, HP, April 2000.
8. C. Willard, Superdome. Hewlett-Packard extends its high end computing capabilities. Whitepaper, IDC, 2000
9. В. Коваленко, «Открытые системы», 1997, № 1, c. 5
10. М. Кузьминский, «Открытые системы», 2000, № 10, c. 33
11. Н. Пирогова, «Открытые системы», 2000, № 10, с. 27