Гибридные системы

6 декабря 2012 Connect
Connect!
Ноябрь 2012
Павел Анащенко
системный архитектор, «Открытые Технологии»

Гонка частот процессоров закончилась в 2005–2006 гг. Дальнейшее увеличение производительности вычислительных систем стало осуществляться за счет повышения степени параллелизма и эффективности параллельных вычислений. Увеличение количества ядер, потоков, процессоров в системе тоже не могло быть бесконечным, и для ресурсоемких задач логичным решением стал вычислительный кластер. Именно системы, полученные путем объединения стандартных узлов в вычислительные кластеры, составляют в настоящий момент большую часть суперкомпьютерной отрасли.
Однако наращивание количества узлов в кластере приводит к увеличению доли накладных расходов и очень скоро становится неэффективным, да и попросту дорогим, как по своей первоначальной стоимости, так и по стоимости дальнейшего владения такой системой. Возрастание количества узлов все острее ставит вопросы энергоэффективности.
Выходы ищут в переходе на гибридные технологии – введение в архитектуру классических систем специализированных вычислителей, которые могли бы показать лучшее соотношение производительности и потребляемой мощности, производительности и стоимости и т. д.

Графика
не для графики

Распространение гибридных систем началось, пожалуй, с появления интегральных схем программируемой логики FPGA. Такие схемы позволяли разработать и самостоятельно сконфигурировать специализированное исполнительное устройство под конкретную задачу уже после его изготовления на заводе. За счет обеспечения взаимодействия такого устройства с универсальным вычислительным узлом и написания программного обеспечения, которое задействовало бы его в вычислениях, можно было добиться колоссальной эффективности гибридной системы для конкретной задачи. Теоретически можно было говорить даже об универсальности такой гибридной системы, поскольку FPGA позволяет довольно легко менять схему связей и тем самым строить различные исполнительные устройства под различные задачи. Но на практике применение гибридных систем на базе ПЛИС FPGA было связано с большой трудоемкостью разработки конфигурации ПЛИС, поэтому могло быть востребовано только для специализированных гибридных систем. Количество задач, которые могли решать такие системы, было ограничено.

Другим типом гибридной системы являются системы на базе так называемых ячеек CBEA (Cell Broadband Engine Architecture). Особенности процессоров этой архитектуры в том, что они включают универсальный блок, построенный по RISC-архитектуре POWER и предназначенный для работы операционной системы, а также восьми векторных процессоров, построенных по архитектуре SIMD, координацией работы которых занимается также универсальный блок. Совмещение ядра общего назначения с сопроцессорами, которые значительно ускоряют обработку мультимедиа и векторных вычислений, позволило найти им применение в игровых консолях и мультимедиасистемах. Но это не единственное их применение. В 2006 г. корпорация IBM выпустила блейд-сервер на базе процессоров Cell. А понастоящему архитектура стала знаменита тем, что на базе Cell был построен известный суперкомпьютер IBM «Roadrunner» – самый производительный в мире суперкомпьютер по рейтингу 2009 г. Его пиковая производительность составляла около полутора петафлопс. Но архитектура CBEA не нашла широкого распространения из-за своей проприетарности, сложности разработки программного обеспечения. Даже несмотря на то что IBM предоставила комплексную платформу разработчика, адаптация существующего ПО под архитектуру CBEA оставалась основной проблемой. К слову сказать, в современном мировом рейтинге TOP-500 присутствуют всего три суперкомпьютера, в составе которых функционируют процессоры Cell. Это IBM «Roadrunner», суперкомпьютер «Cerrillos», расположенный в той же, что и «Roadrunner», Национальной лаборатории в Лос-Аламосе, и суперкомпьютер «Ломоносов» Московского государственного университета им. М.В. Ломоносова. Причем «Ломоносов» содержит всего 30 узлов на базе процессоров Cell, в то время как гибридных узлов на базе графических процессоров в нем больше тысячи.

Названные виды гибридных систем в настоящий момент востребованы в узких областях. Понастоящему универсальным и наиболее популярным типом гибридных систем являются системы на базе графических процессоров. Идея использования графических процессоров для решения не графических задач (GPGPU – General Purpose GPU) долгое время лежала на поверхности и практически не реализовывалась. Использование графических процессоров в вычислениях требовало формулирования алгоритма в «шейдерных» терминах, что было очень неудобно и трудоемко. Поэтому бурное развитие подход построения гибридных систем на базе GPU получил только после февраля 2007 г., когда компанией NVIDIA была представлена первая версия CUDA SDK.

Графический процессор представляет собой SIMD-вычислитель с большим количеством ядер (оно превышает 2500) и общей памятью. При использовании его в качестве сопроцессора с CPU можно добиться значительного повышения производительности такой гибридной системы на задачах, хорошо поддающихся распараллеливанию. CPU взаимодействует с GPU по стандартной шине PCI-е. Существует вариант размещения GPU в отдельном независимом конструктиве с подключением к серверу посредством PCI-e-кабелей. Таким образом, практически любой стандартный сервер может быть легко превращен в маленький суперкомпьютер. К примеру, подключение к стандартному двухпроцессорному серверу двух модулей с GPU по 4 GPU в каждом повышает его пиковую производительность с 200–300 гигафлопс до более чем 5 Тфлопс в двойной точности. Очевидно, простота аппаратной реализации идеи и хорошее сопровождение CUDA SDK и есть причина популярности такого подхода к построению гибридных вычислительных систем.

Отдельно стоит сказать о программном обеспечении. Большинство коммерческих программных пакетов, требующих ресурсоемких вычислений, уже поддерживают GPU. Из наиболее известных можно назвать САПР: CATIA, ANSYS, Abaqus; математические пакеты MATLAB, Mathematica; графические пакеты Adobe Premiere Pro, Autodesk Maya; огромное количество пакетов для научных расчетов. И этот список постоянно пополняется. Если речь идет о самостоятельной реализации тех или иных алгоритмов для исполнения на гибридных платформах на базе GPU, можно использовать компилятор Си, входящий в состав CUDA SDK. Доступны также Fortran – классический язык для реализации параллельных алгоритмов, Pascal – скорее в учебных целях. Если код уже написан под классическую вычислительную систему, существует возможность оперативно адаптировать код для работы на гибридной системе с помощью специальных директив стандарта OpenACC. Для этого необходимо лишь отметить части кода, которые следует выполнять на GPU, пометить общие и индивидуальные для потока переменные. Такой вариант позволит быстро оценить степень его ускорения при переходе на гибридную систему.

Гибридная эффективность

Говорить об ускорении приложений удобно на примерах. Например, моделирование жизни молекул протеина, проведенное в программном пакете Amber, позволяет на классической системе с четырехъядерным процессором оценить 80 наносекунд жизни молекулы в день. Подключение к этой вычислительной системе всего одного GPU NVIDIA Tesla С2075 улучшает результат до 367 наносекунд в день. Подключение GPU к такой же системе при моделировании потоков масла в двигателе внутреннего сгорания с помощью ПО Promеtech уменьшает время моделирования с восьми дней до одного. Приведенные примеры не настолько ресурсоемкие, но уже здесь заметно значительное ускорение приложений.

На этих же примерах можно показать соотношение прироста производительности и прироста энергопотребления системы. Если считать, что сервер стандартной архитектуры потребляет около 600 Вт, возрастание энергопотребления составит около 30% (потребление GPU – 225 Вт), а производительность при этом повысится в четыревосемь раз. И эти цифры растут с усложнением задачи и увеличением требуемой производительности вычислительной системы. NVIDIA приводит оценку, сделанную для одного из проектов по построению платформы для обработки сейсмических данных. Переход с вычислительного кластера производительностью порядка 70 Тфлопс на узлах стандартной архитектуры на аналогичный по производительности гибридный вычислительный кластер на базе GPU приводит к снижению требований к месту для размещения оборудования в 31 раз, к электрической мощности ? в 27 раз. При этом стоимость системы уменьшается в 20 раз.

Все приведенные примеры были сделаны на GPU семейства Fermi; приходящее ему на смену семейство Kepler демонстрирует еще более высокие показатели энергоэффективности. При том же энергопотреблении модуль Tesla K10 на базе Kepler на одинарной точности в 4,5 раза производительнее, чем Tesla на базе Fermi. А GPU Tesla K20 и Tesla K20x, представленные 12 ноября на конференции SC'12 в Солт-Лейк-Сити, дают на реальных задачах прирост производительности по сравнению с Fermi до 3-х раз уже на двойной точности.

Несмотря на то что отношение производительности к энергопотреблению для гибридных систем много лучше, чем для классических, при построении высокопроизводительных систем абсолютное энергопотребление часто является сдерживающим фактором. Современные конструкции серверов позволяют разместить до 4 GPU и 2 CPU в стандартном корпусе высотой 1 RU, такая плотность обеспечивает возможность построить систему производительностью более 770 Тфлопс (в одинарной точности) в стандартном монтажном шкафу высотой 42 RU, но потреблять данная система будет около 75 кВт. Отвод тепловой мощности от монтажного шкафа, как правило, достаточно проблематичен. И дело даже не в мощности, потребляемой серверами, как таковой, а в необходимости обеспечить требуемый поток воздуха для ее отвода. Охлаждение оборудования при столь высокой плотности осуществляется обычно путем использования закрытых монтажных конструктивов, объединенных с блоками кондиционеров для образования изолированного воздушного контура (шкаф с закрытой архитектурой охлаждения). При таком решении крайне важно учитывать расход воздуха системы охлаждения вычислительных узлов. В приведенном примере производительность вентиляторов сервера равна приблизительно 300 CFM, что при пересчете дает более 21 тыс. м3/ч на всю систему. Обеспечить такой воздушный поток в условиях ЦОД практически невозможно. Вероятно, проблема может быть решена с помощью систем непосредственного жидкостного охлаждения или каких-то других жидкостных систем, но подобные решения пока дороги (практически сводят на нет все стоимостные преимущества, заложенные в решения самой вычислительной платформы), возникает масса вопросов по их обслуживанию, надежности их самих и охлаждаемых компонентов. Да и востребуется заказчиками такая экстремальная плотность крайне редко.

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


Обобщая сказанное, можно утверждать, что современный суперкомпьютер, построенный с учетом требований энергоэффективности, простоты адаптации или разработки программного обеспечения и оптимальный по соотношению стоимость/производительность, – это гибридный вычислительный кластер на графических процессорах, спроектированный из расчета использования с воздушными климатическими системами. Дополнительного эффекта можно достичь путем разделения CPU- и GPU-частей по отдельным конструктивам, что даст возможность не только существенно снизить взаимовлияние частей при проведении регламентных работ и защитить инвестиции при модернизации системы, но и максимально гибко подойти к распределению оборудования внутри монтажного шкафа, обеспечив тем самым оптимальное распределение тепловых зон и повысив эффективность отвода тепла. Существующие на рынке решения позволяют, исходя из этих требований, построить систему производительностью до 300 Тфлопс в одинарной точности или более 64 Тфлопс в двойной точности в пределах одного монтажного шкафа. Это уже результат, позволяющий попасть в рейтинг ТОР-50 суперкомпьютеров СНГ.




Предыдущая новость:
Системность телекома
Следующая новость:
Какой ЦОД нужен оператору связи