© Центр суперкомпьютерных и массивно-параллельных приложений, 1997.


Обзор архитектуры суперкомпьютеров Exemplar корпорации Hewlett-Packard серий S-Class и X-Class


Андреев Александр Николаевич (alexander@vvv.srcc.msu.su), вариант от 12 Октября1997


Содержание документа

 


Введение. Предназначение машин Exemplar и их место на современном рынке высокопроизводительных вычислительных систем

Семейство "технических серверов" Exemplar (Exemplar Techical Server Portfolio) корпорации HP предлагает пользователям свои услуги в следующих пяти важнейших областях: 1) вычисления, 2) обработка информации, 3) хранение данных, 4) функции файл-сервера и 5) серверные приложения для Интернет и интрасетей.

Эволюция систем Exemplar, от Convex SPP 1000 до будущих систем на базе Merced, кратко представлена на рис. 1:

Эволюция Exemplar рис.1

В настоящее время доступны 4 класса машин Exemplar, от систем начального уровня (D-Class) до наиболее мощных систем (X-Class). Основные характеристики этих 4 классов приведены в следующей таблице:

  Число ЦП Объем памяти
D-Class 1-2 32MB-1.5GB
K-Class 1-4 128MB-4GB
S-Class 4-16 256MB-16GB
X-Class 4-64 1GB-64GB

Все системы Exemplar совместимы на уровне двоичного кода.
За счет использования комлектующих, характерных для настольных систем, машины семейства Exemplar по соотношению цена/производительность не уступают современным рабочим станциям и Unix-серверам. Будущие поколения систем Exemplar будут включать самые последние версии микропроцессорных архитектур HP, включая процессор "Merced", разрабатываемый в сотрудничестве с Intel.


Системная архитектура серий S-Class и X-Class

Системы S-Class и X-Class семейства Exemplar обеспечивают все преимущества высокопроизводительных масштабируемых систем, поддерживая при этом традиционную модель программирования. Эта модель позволяет разработчикам, компиляторам и приложениям рассматривать Exemplar как MIMD-систему или набор процессоров, разделяющих большую физическую память и набор высокоскоростных портов ввода/вывода (cм рис. 2).

Exemplar c точки зрения приложения рис.2

Такой взгляд на систему поддерживается сложным аппаратным и программным обеспечением, управляющим подсистемой Global Shared Memory (GSM).

Серия S-Class

Системы класса S предлагают

На рис. 3 показаны основные компоненты системы класса S

Компоненты системы класса S рис.3

16-процессорная система класса S состоит из следующих основных компонент

Crossbar

Подсистема памяти основана на коммутаторе (crossbar), который обеспечивает очень высокую скорость обменов с памятью. Архитектура коммутатора позволяет осуществлять доступ из множества параллельно работающих процессоров и каналов ввода/вывода к платам памяти без блокировок. Использование коммутатора позволяет не допускать падения производительности с ростом числа процессоров, неизбежного в случае систем с общей шиной.

8 портов коммутатора обслуживают до 8 процессорных блоков (через агенты транспортировки данных) и 8 "противоположных" портов подключены к платам памяти (через контроллеры памяти).

Пропускная способность

Коммутатор работает на частоте 120MHz. Ширина пути между агентом и контроллером памяти составляет 64 бит. Таким образом, пропускная способность одного порта коммутатора по каждому направлению составляет 960 MB/sec. Коммутатор работает без блокировок, т.е. все 8 портов могут передавать и принимать информацию одновременно (если при этом два агента не обращаются к одному контроллеру памяти). Таким образом, пиковая пропускная способность всего коммутатора составляет 15.36 MB/sec.

Организация физической памяти

Системы класса S могут иметь от 256 Мбайт до 16 Гбайт памяти, физически распределенной по 2-8 платам. Благодаря использованию SDRAM (Synchronous Dynamic Random Access Memory) подсистема памяти работает на более высокой тактовой частоте, чем было бы возможно с памятью типа DRAM, и имеет более высокую эффективную пропускную полосу. SDRAM все более широко применяется в системах разного уровня, включая PC: это микросхемы с лучшим показателем цена/производительность.


SDRAM

Чтобы объяснить преимущества SDRAM, рассмотрим вначале схематическое представление стандартной DRAM. DRAM имеет два компонента: собственно память и контакты. Адрес подается в DRAM на входных контактах, осуществляется доступ к памяти DRAM для выборки данных, которые затем выдаются на выходные контакты. Сразу после того, как доступ к данным завершен, происходит восстановление памяти, которое должно завершиться прежде, чем память может использоваться повторно. Во время восстановления DRAM не может отвечать на новые запросы, поступающие на контакты.

Модель SDRAM включает в эту схему дополнительный компонент: связь между контактами и ядром осуществляется через регистры. Теперь, когда адрес подается в SDRAM и по нему осуществляется доступ к памяти, из нее выбирается больше информации, чем подается на выходные контакты. Эти избыточные данные сохраняются на регистрах. После того, как выборка из памяти произведена, начинается ее восстановление, как и в стандартной DRAM. Однако во время восстановления сохраненные на регистрах дополнительные данные остаются доступными и могут быть выбраны. Таким образом, этот способ позволяет уменьшить потери времени при доступе в SDRAM за счет выборки дополнительных данных.


В системах Exemplar класса S память организована в единый массив - в этом отличие архитектуры Convex, например, от архитектуры S2MP SGI Origin, в которой у каждого процессора имеется собственная локальная память.

Высокая производительность подсистемы памяти обеспечивается тем, что память составляется из модулей, которые реализованы по технологии DIMM (Double In-line Memory Module). Эти модули, ориентированные на 64-разрядные процессоры, имеют большее число контактов (168) по сравнению со стандартными для ПК модулями типа SIMM, и существенно более высокую производительность. Память собирается из базовых 128-Мегабайтных модулей DIMM, которые равно распределены между контроллерами памяти. На каждой плате памяти может быть установлено до 4 модулей DIMM, и на каждый контроллер приходится 128, 256, 384 или 512 Мегабайт памяти.

Степень расслоения памяти определяется количеством плат памяти, а не числом модулей DIMM. Каждый контроллер памяти дает 4-кратное расслоение, так что в полной конфигурации с 8 контроллерами получается 32-кратное расслоение, которое не зависит от реального объема имеющейся памяти.


Серия X-Class

Система класса X состоит из нескольких SMP-модулей, называемых гиперузлами. Каждый гиперузел принципиально представляет собой систему класса S. Гипер-узлы соединяются быстродействующим сетевым оборудованием (CTI, Coherent Toroidal Interconnect), главной задачей которого является поддержание системы разделяемой памяти (GSM) и когерентности кэшей.

Система класса S может быть без потерь модернизирована до системы класса X.

Двухуровневая архитектура памяти

Поскольку система строится из нескольких узлов, располагающих собственной памятью, в архитектуре оперативной памяти появляется второй уровень. В системах Exemplar класса X двухуровневая иерархия памяти поддерживается архитектурой СС-NUMA, в которой каждый уровень оптимизирован для параллельного доступа к разделяемым данным. Блоки памяти первого уровня соединяются между собой высокопроизводительной сетью обмена CTI. При этом, также как и в S-системах, сохраняется модель однородной разделяемой памяти и обеспечивается согласованность данных в кэшах процессоров.

Архитектура системы Exemplar теоретически масштабируется до 512 процессоров и до 512 Гбайт оперативной памяти.

Сеть обмена.

Сеть обмена CTI - Coherent Toroidal Interconnect, построенная в соответствие со стандартом IEEE 1596-1992 SCI, использовалась и в предыдущих поколениях систем Convex (SPP1X00). Теперь она получила развитие и выросла во втором измерении. CTI теперь состоит из совокупности колец (см. рис. 4), плоскости которых ориентированы в двух ортогональных направлениях (X и Y). Такое наращивание сети обмена - прежде был один набор колец, расположенных параллельно, - увеличило ее пропускную способность и повысило устойчивость к сбоям.

CTIрис 4.

Сеть обмена реализована в виде множества однонаправленных связей между гиперузлами типа точка - точка. Если рассмотреть одно кольцо, скажем в направлении X, то в нем есть выделенное направление, в котором передаются данные. Физически кольцо составлено из 8 независимых участков передачи данных, которые исходят от каждого из 8 контроллеров интерфейса в гиперузлах. Связь между некоторой парой гиперузлов полностью независима от всех остальных связей, что дает расслоение доступа вдоль кольца. Для увеличения производительности важно, что в контроллерах CTI могут храниться несколько ожидающих обработки запросов.

Следует отметить, что CTI обеспечивает реальную аппаратную поддержку доступа к общей глобальной память, в то время как системы без этой функции лишь программно эмулируют перемещение страниц из одного гиперузла в другой.

Для минимизации издержек доступа к глобальной памяти каждый гиперузел содержит кэш ссылок на страницы памяти, полученные по сети обмена от других гиперузлов. Система гарантирует идентичность кэшей в различных гиперузлах - если два или несколько гиперузлов обращаются по одному адресу памяти, они получат одинаковые данные.


Архитектура PA-RISC и процессор PA-8000

PA-8000 представляет собой суперскалярный 64-битный RISC-процессор. При тактовой частоте в 180MHz процессор обеспечивает пиковую производительность в 720 MFLOPS, за счет одновременного исполнения 4 инструкций с плавающей точкой.

Процессор PA-8000 включает следующие архитектурные особенности

На рис. 4 представлена блок-схема процессора PA-8000.

Блок-схема PA-8000 рис. 4

Процессор PA-8000 - это первая реализация архитектуры PA-RISC 2.0. Главное нововедение в PA-RISC версии 2.0 - 64-битная целочисленная арифметика и 64-битная адресация. Версия 2.0 также добавила страницы переменного размера, несколько новых операций с плавающей точкой и ряд других преимуществ по сравнению с PA-RISC 1.1. При этом процессор PA-8000 сохраняет полную двоичную совместимость с процессорами PA-7100 и PA-7200.

Как было уже отмечено, PA-8000 поддерживает плоское 64-битное адресное пространство; хотя чип экспортирует 40-битные физические адреса. Это соответствует 1 терабайту непосредственно адресуемой памяти.


Си


HP MPI

HP MPI - это высокопроизводительная реализация интерфейса параллельного программирования MPI для серверов и рабочих станций HP, разработанная специалистами подразделения Convex.

Основные преимущества HP MPI для пользователей (разработчиков)

Производительность

Производительность MPI-приложений определяется латентностью, т.е. временем передачи сообщения нулевой длины; а также пропускной способностью, т.е. наибольшей скоростью передачи больших сообщений между двумя процессами MPI-приложения.
Для приложений с тонкой параллельной структурой (fine-grained parallelism), какими, как правило, являются вычислительные программы, крайне важны малые величины латентности; тогда как для приложений, использующих большие объемы пересылок (а это, как правило, коммерческие приложения БД), более важно максимальное увеличение пропускной способности.

Системы Exemplar за счет высокопроизводительной SMP-архитектуры гиперузла и быстрой сети, связывающей гиперузлы между собой, обеспечивают крайне малые величины латентности. В следующей таблице приведены эти величины, заявленные HP, для обменов внутри одного гиперузла системы класса X (или внутри системы класса S), а также для сетевых обменов между разными гиперузлами 64-процессорной системы класса X.

  Латентность Пропускная способность
один гиперузел 2.6 usec 880 MB/sec
различные гиперузлы 8.0 usec 168 MB/sec

Ссылки

[1] Web-сервер подразделения Convex корпорации Hewlett-Packard: http://www.convex.com
[2] "Advanced Performance Features of the 64 bit PA-8000" Doug Hunt, HP Engineering Systems Lab
[3] "Система Exemplar SPP2000" Виктор Коваленко, Открытые Системы, 1-1997.
[4] "Cache Coherency in Convex MPP" Greg Astfalk, Tony Brewer, Greg Palmer; Feb '94.