Обзор архитектуры персональных мини-кластеров
1.3. Ускорители
Технологический мир сегодня пронизан конвергенцией – взаимным влиянием и даже взаимопроникновением технологий, стиранием границ между ними, возникновением многих интересных результатов на стыке областей в рамках междисциплинарных работ. Одно из проявлений этого явления – "игра" основных производителей аппаратных составляющих компьютеров на "чужих полях". Так компании NVIDIA и ATI (последняя теперь в составе компании AMD), накопив опыт и поняв, что пиковая мощность их продуктов уже стала сравнима с кластерами "средней руки", от выпуска графических ускорителей начали движение на рынок высокопроизводительных решений, представив соответствующие продукты (семейства NVIDIA Tesla™ и ATI FireStream™). Напротив, компании, традиционно выпускавшие процессоры и серверные решения, взялись осваивать область мультимедиа: компания Intel разрабатывает многопоточное векторное графическое устройство Larrabee [6], компания IBM в составе альянса STI создала, как мы уже обсуждали, процессор Cell, изначально ориентированный именно на быструю обработку мультимедиа информации. Никуда не делись и типичные ускорители вычислений, способные существенно добавить мощности даже обычным "персоналкам" – на этом направлении работает, например, компания ClearSpeed Technology [7].
Как следствие, перед обычными пользователями, желающими попробовать "с чем едят" суперкомпьютерные технологии возникает большой и не всегда просто осуществляемый выбор. Попытаемся немного прокомментировать возможности двух из представленных выше систем: ClearSpeed™ Advance™ X620 и NVIDIA Tesla™ D870.
1.3.1. Ускоритель вычислений ClearSpeed™ Advance™ X620
ClearSpeed™ Advance™ X620 – это ускоритель операций над данными с плавающей запятой, представленных в формате с двойной точностью. Ускоритель является сопроцессором, разработанным специально для серверов и рабочих станций, которые основаны на 32-х или 64-х битной х86 архитектуре, и построен на базе двух процессоров CSX600 со 194 вычислительными ядрами. X260 подключается к PCI-X разъему на материнской плате. Среда разработки под X260 основана на языке C и включает SDK, а также набор инструментов для написания и отладки программ.
Технические характеристики X260:
- 2 процессора CSX600, работающих на частоте 210 МГц.
- Каждый CSX600 содержит 97 ядер (из них 96 в poly-исполнительном блоке и 1 в mono-исполнительном блоке).
- Пиковая производительность X260 – 66 гигафлопс.
- Память 1 Гб DDR2 DRAM 64-bit (по 0,5 Гб на каждый процессор).
- Пиковая пропускная способность шины памяти 3,2 Гб/с.
- Подключается к ПК через PCI-X разъем материнской платы.
- Максимальная потребляемая мощность: 43 Вт.
- Рабочий диапазон температур: 10..50?C.
Ускоритель X260 поддерживает операционные системы семейств Linux (Red Hat, SUSE) и Windows (XP, 2003 Server). Для работы с X260 необходимо установить специальный драйвер.
При работе с ускорителем программист может использовать несколько уровней памяти:
- каждый mono-процессор обладает локальной памятью (mono local memory) размером 128 Кб;
- каждый poly-процессор обладает локальной памятью (poly local memory) размером 6 Кб;
- все процессоры во всех блоках имеют доступ к общей памяти устройства (global memory = device memory) размером 1024 Мб.
Главное (хост) приложение, использующее возможности X620 состоит из двух частей:
- программа, выполняющаяся на главном процессоре;
- программа, которая выполняется на ускорителе.
ClearSpeed™ Advance™ X620 обычно используется в качестве сопроцессора для ускорения внутренних циклов программы, достигающегося за счет использования стандартных математических библиотек, разработанных ClearSpeed. Если в приложении происходит вызов функции, поддерживаемой математическими библиотеками ClearSpeed, то библиотека сама анализирует возможность ее ускорения. В зависимости от выполненного анализа функция начинает выполняться либо на главном процессоре, либо перехватывается ускорителем. Этот механизм широко используется в ряде математических приложений, например в MATLAB.
Если в приложении происходит вызов функции, не поддерживаемой библиотеками ClearSpeed, то программист, в случае необходимости, может сам реализовать ее, используя имеющийся инструментарий.
1.3.2. Настольный суперкомпьютер NVIDIA Tesla D870
В 2007 году компания NVIDIA представила продукты семейства Tesla™ для построения высокопроизводительных вычислительных систем. Семейство включает вычислительный процессор NVIDIA Tesla™ C870, приставной суперкомпьютер NVIDIA Tesla™ D870 и вычислительный сервер NVIDIA Tesla™ S870. Два последних решения построены на двух и четырех процессорах C870 соответственно. Сервер S870 выпускается в 1U форм-факторе и предназначен для построения на его основе кластерных решений. Его обсуждение выходит за рамки данного материала.
Настольный (в терминологии компании NVIDIA приставной) суперкомпьютер NVIDIA Tesla™ D870 конструктивно представляет собой два процессора C870, объединенных в небольшом корпусе. Необходимым условием для подключения D870 к компьютеру является наличие не менее двух PCI Express разъемов, в первом должна быть установлена видеокарта NVIDIA не менее чем 8ххх серии, а во второй ставится специальная плата-переходник, к которой и подключается D870.
Технические характеристики D870:
- 2 платы NVIDIA Tesla™ C870.
- Каждый процессор C870 содержит 128 скалярных процессора с частотой 1,35 ГГц.
- Пиковая производительность D870 – 1 терафлопс.
- Память 3 Гб GDDR3 384-bit (по 1,5 Гб на каждый процессор).
- Пиковая пропускная способность шины памяти 76,8 Гб/с.
- Подключается кабелем к специальной плате-переходнику, установленной в разъем PCI Express x8 или x16.
- Максимальный уровень шума 40 дБ.
- Максимальная потребляемая мощность 520 Вт.
Суперкомпьютер D870 поддерживает операционные системы семейств Windows, Linux, Mac OS. В комплект поставки входят следующие компоненты (необходимо устанавливать в указанном порядке): CUDA Driver, CUDA Toolkit, CUDA SDK.
CUDA (Compute Unified Device Architecture) – программно аппаратное решение, позволяющее использовать видеопроцессоры для вычислений общего назначения. Возможность программирования видеопроцессоров компании NVIDIA на CUDA существует, начиная с семейства видеокарт 8ххх. Разработка программ для выполнения на D870 происходит таким же способом.
С точки зрения программиста, D870 представляет собой набор независимых мультипроцессоров. Каждый мультипроцессор состоит из нескольких независимых скалярных процессоров, двух модулей для вычисления математических функций, конвейера, а также общей памяти.
CUDA позволяет создавать специальные функции (ядра, kernels), которые выполняются параллельно различными блоками и потоками, в отличие от обычных C-функций. При запуске ядра блоки распределяются по доступным мультипроцессорам. Мультипроцессор занимается распределением, параллельным выполнением потоков внутри блока и их синхронизацией. Каждый поток независимо исполняется на одном скалярном процессоре с собственным стеком инструкций и памятью.
CUDA предоставляет программисту доступ к нескольким уровням памяти:
- каждый поток обладает локальной памятью;
- все потоки внутри блока имеют доступ к быстрой общей памяти блока, время жизни которой совпадает со временем жизни блока; память блока разбита на страницы, доступ к данным на разных страницах осуществляется параллельно;
- все потоки во всех блоках имеют доступ к общей памяти устройства.
Всем потокам также доступны два вида общей памяти для чтения: константная и текстурная, они кэшируются. Так же как и в общей памяти устройства, данные сохраняются на протяжении работы приложения.
1.4. Мини-кластеры
Были времена, когда кластеры собирали на основе обычных рабочих станций. Таков, например, был первый известный кластер Beowulf, собранный летом 1994 года в научно-космическом центре NASA из 16 компьютеров на базе процессоров 486DX4 с тактовой частотой 100 MHz. Связь узлов в этом кластере осуществлялась посредством 10 Мбит/с сети, невероятно медленно по сегодняшним меркам. Однако довольно быстро стало понятно, что каждый отдельный узел кластера не нуждается во всем многообразии комплектующих, из которых состоит обычный "отдельно стоящий" компьютер. В действительности все, что должно быть в каждом узле, – процессор, память, жесткий диск с размером достаточным, чтобы установить на него операционную систему, и сетевой интерфейс. Это понимание привело к тому, что характерным форм-фактором для стоечных серверов, из которых собирают современные кластеры, стал 1U с высотой порядка 4,5 см. Идея "упаковать" некоторое количество узлов в небольших размеров корпус так, чтобы кластер не требовал отдельного помещения, что называется, лежала на поверхности. Мы уже упоминали про мини-кластер RenderCube. Еще одним примером подобного подхода является мини-кластер, представленный в 2005 году стартап-компанией Orion Multisystems, включающий до 96 процессоров и до 192 Гб памяти [8].
В 2006 году свои решения в этой нише начала поставлять российская компания "Т-Платформы", сначала на основе процессоров компании AMD, а позднее и компании Intel.
1.4.1. Персональный суперкомпьютер T-Forge Mini
T-Forge Mini – компактный суперкомпьютер, габаритные размеры (360?321?680 мм) и небольшая масса которого позволяют установить его непосредственно на рабочем месте сотрудника. Уровень шума T-Forge Mini не превышает 45 децибел, что позволяет использовать мини-кластер в том числе и в офисных условиях.
Технические характеристики мини-кластера T-Forge Mini:
- До 4-х двухпроцессорных узлов на базе двухъядерных процессоров AMD Opteron™ или AMD Opteron™ HE с низким энергопотреблением, объединенных сетью Gigabit Ethernet.
- Память до 64 Гб.
- До 4-х устройств HDD SATA общим объемом до 2 Тб.
- 4 блока питания мощностью 350 Вт.
- До 9-ти портов Gigabit Ethernet.
- Контроль частоты вращения вентиляторов.
- Видео-карта ATI Rage XL 8Mb.
- Плата удаленного управления сервером с поддержкой стандарта IPMI (опционально).
- Операционная система: ОС SUSE Linux Enterprise Server 9, RedHat Enterprise Linux 4 или Microsoft Windows Compute Cluster Server 2003.
Один из первых мини-кластеров T-Forge Mini в максимальной конфигурации (не считая объема памяти) с пиковой производительностью в 70 гигафлопс был приобретен ННГУ в рамках нацпроекта "Образование" в 2006 году [9] и используется при выполнении многих образовательных и научных проектов.
1.4.2. Мини-кластер T-Edge Mini
Мини-кластер T-Edge Mini несколько крупнее, чем T-Forge Mini (габаритные размеры T-Edge Mini 530?360?700 мм), да и масса под 100 кг уже не позволяет назвать его "настольным", но под столом он вполне способен разместиться. Дополнительный объем был потрачен компанией-разработчиком с толком. Во-первых, размещен дополнительный вычислительный узел, во-вторых, поддерживаются четырехъядерные процессоры, в-третьих, в качестве интерконнекта может быть использован не только Gigabit Ethernet, но и Infiniband.
Технические характеристики мини-кластера T-Edge Mini:
- До 5-ти двухпроцессорных узлов на базе четырехъядерных процессоров Intel Xeon , объединенных сетью Gigabit Ethernet или Infiniband.
- Память до 64 Гб.
- 3 блока питания мощностью 600 Вт.
- Адаптер сервисной сети, осуществляющий мониторинг и администрирование управляющего узла по протоколу RS 485 ServNET v.2.0.
- Порты ввода/вывода на передней панели: VGA port, USB ports, Keyboard and Mouse.
- Порты ввода/вывода на задней панели: 2 RJ-45 GbE ports, 1 RJ-45 FE port, 4 порта для мониторинга узлов по протоколу RS 485.
- Встроенный DVD привод.
- Встроенный KVM and GbE коммутатор.
- Операционная система: ОС SUSE Linux Enterprise Server 9, RedHat Enterprise Linux 4 или Microsoft Windows Compute Cluster Server 2003.
В 2007 году ННГУ в рамках нацпроекта "Образование" приобрел два мини-кластера T-Edge Mini, построенных на процессорах Intel Xeon 5320 (1,86 ГГц) с 20 Гб оперативной памяти и дисковой подсистемой на 1,25 Тб. В качестве интерконнекта в одном из мини-кластеров использован Gigabit Ethernet, во втором Infiniband. Пиковая производительность каждого – 297 гигафлопс.
1.5. Источники рисунков
- Рис. 1.1. – http://www.rendercube.com/gallery.htm.
- Рис. 1.2. – http://www.overclockers.ru/lab/22660.shtm.
- Рис. 1.3. – http://www.amd.com/us-en/Processors/ProductInformation/0,,30_118_15331_15332%5E15334,00.html.
- Рис. 1.4. – http://www-01.ibm.com/support/docview.wss?uid=tss1prs3036&aid=1.
- Рис. 1.6. – http://ru.wikipedia.org/wiki/UltraSPARC_T1.
- Рис. 1.7. – "ClearSpeed™ Advance™ X620 Product Datasheet".
- Рис. 1.8. – System Specification. NVIDIA Tesla D870 Deskside GPU Computing System – [http://www.nvidia.com/docs/IO/43395/D870-SystemSpec-SP-03718-001_v01.pdf].
- Рис. 1.9. – "Мини-кластер в одном корпусе: 96 процессоров и 192 Гб RAM" – [http://www.ixbt.com/staticnews/04/12/67.html].
- Рис. 1.10. – "Готовые решения компании "Т-Платформы" для прикладных задач" – [http://www.t-platforms.ru/pdf/T-Platforms_Turn-key_Solutions.pdf].