Сразу же после появления сервисов типа Amazon EC2 были предприняты первые попытки переориентировать облако для высокопроизводительных вычислений (HPC). По определению они оказались неудачными, поскольку универсальные облачные инфраструктуры с их относительно медленными коммуникациями страдают заметной деградацией производительности по мере роста числа объединяемых в кластер узлов. Тем не менее в нескольких университетах провели необходимые эксперименты, которые показали, что облачный кластер собрать можно, но не более чем из двух-трех узлов — дальнейшее наращивание мощности лишено смысла. Однако эти эксперименты показали слабость не самой идеи облачных HPC, а имевшихся на тот момент способов ее реализации.
Привлекательность облачных услуг HPC определяется рядом факторов. Прежде всего тем, что облака, в отличие от обычных кластеров, обладают высокими показателями гибкости и масштабирования. Кроме того, в своем большинстве нынешние суперкластеры, входящие в самые разнообразные рейтинги, не обеспечивают необходимого качества услуг, принуждая пользователя при решении его прикладных задач работать на низком системном уровне и, следовательно, обременяя его избыточными экспертными знаниями в области собственно HPC. Вот почему эффективно использовать ресурсы суперкомпьютеров удается сегодня лишь отдельным героям, не случайно большая часть докладов на конференциях сводится к тому, как их авторы смогли решить какую-то определенную, свою собственную задачу, а создатели суперкластеров с гордостью заявляют, что ухитрились загрузить их на столько-то процентов. Часть же суперкомпьютеров, особенно снабженных графических процессорами (GPU), обычно остается недозагруженной, что не секрет, но говорить на эту тему лица, причастные к ней, не любят.
Особый интерес к возможностям доступа к HPC в форме сервисов проявляют промышленные предприятия малого и среднего бизнеса, использующие для проектирования и моделирования мощные рабочие станции. В идеале им подходят доступные по цене так называемые департаментные микросуперкомпьютеры класса Cray CX1 и им подобные, которые иногда называют рабочими станциями следующего поколения. Казалось бы, все замечательно, они и вправду не слишком дороги, их цена находится в пределах 25 тыс. долл., а затраты на установку и обслуживание практически сведены к нулю, но тут возникает проблема, связанная со стоимостью прикладного ПО. В ряде случаев оно обходится на порядок дороже, чем оборудование, но если использовать облачные сервисы, то стоимость такого ПО снижается при распределенном пользованиис почасовой оплатой. Таким способом решаются бюджетные проблемы.
На возникающие запросы со стороны неудовлетворенных пользователей Amazon ответила предоставлением сервисов средствами специализированных экземпляров двух новых типов. Один — просто кластерный (Cluster Compute Quadruple Extra Large Instance) на четырехъядерных 64-разрядных процессорах Nehalem с памятью 23 Гбайт и дисковым пространством 1690 Гбайт, объединенных 10 Gigabit Ethernet, и второй — кластерный с графическим ускорителем (Cluster GPU Quadruple Extra Large Instance), дополненным двумя графическими процессорами nVidia Tesla Fermi M2050. Параллельно профессиональные облачные услуги начинают оказывать Platform Computing, Penguin Computing, SGI и ряд других компаний. В том же направлении действуют несколько общественных организаций, предоставляющих услуги SaaS и IaaS средствами своих частных облаков. В данном случае различие между SaaS и IaaS состоит в том, что в первом случае используется ПО провайдера, а во втором — собственное ПО заказчика (см. Рисунок).
Рисунок. Облачные HPC-сервисы |
Для проведения серьезных исследований, относящихся к HPC в облаках, был создан экспериментальный центр обработки данных HPC Advisory Council High-Performance Center, расположенный в Саннивейле (шт. Калифорния). Его учредителями стали Microsoft, Intel, AMD, Dell и Mellanox. Сейчас здесь установлено восемь различных экспериментальных кластеров, поддерживающих режим HPCaaS (HPC as a Service), каждый из которых содержит от 8 до 24 узлов на четырех- и шестиядерных процессорах AMD или Intel. Все они построены на основе коммутационного оборудования Mellanox, реализующего межсоединения InfiniBand/10 Gigabit Ethernet. Важно отметить, что все эти кластеры построены на коммутаторах Mellanox, которые поддерживают архитектуру межсоединений, называемую «толстым» деревом (Fat Tree) или CBB (Constant Bisectional Bandwidth). Эта архитектура гарантирует необходимую для HPC аппаратную масштабируемость, поскольку позволяет создавать конфигурации, свободные от возможных блокировок. Сеть Fat Tree – это многоуровневая коммутационная топология, обеспечивающая необходимую для облака масштабируемость. Идея создания таких сетей известна давно и принадлежит исследователю из Bell Labs Чарльзу Клосу, опубликовавшему в 1953 году статью A study of non-blocking switching networks. С тех пор такие сети называют сетями Клоса. Они обладают возможностью для переконфигурирования, и, хотя эти сети применялись в суперкомпьютерах, изменение конфигурации кластера, необходимое для HPCaaS, с использованием этого аппарата удалось реализовать лишь Mellanox.
Управляющее ПО для HPCaaS разрабатывает несколько компаний. Для динамического управления облаками используются: система управления кластером Penguin Computing Scyld, система управления нагрузкой Platform LSF HPC, а также система контроля и учета нагрузки Platform RTM. Продукты компаний Platform Computing и Penguin Computing взаимно дополняют друг друга: первые обеспечивают масштабируемость, вторые – сервисы. Компания Penguin Computing была создана в 1998 году и имеет достаточно широкий спектр предложений в области виртуализации кластеров. Ее продукт Scyld ClusterWare, полученный после приобретения в 2003 году компании Scyld, приближает кластеры по удобству управления к SMP-системам. Компанию Scyld основал Дональд Беккер, соавтор Томаса Стерлинга по изобретению Beowulf, сейчас он работает техническим директором Penguin Computing. Беккер в 2005 году одним из первых заговорил о виртуализации как о способе представления множества разрозненных ИТ-ресурсов в виде одного, в то время как VMware, Xen и другие сосредоточили свое внимание только на одной стороне виртуализации – на возможности предоставления одного физического ресурса в виде множества независимых логических. В Scyld ClusterWare имеется одна точка управления – мастер-узел, с помощью которого можно за считанные секунды собрать из имеющихся ресурсов требуемую конфигурацию. Если обычная установка ОС на узел кластера занимает от четверти часа до получаса и еще требует дополнительной настройки, то с использованием подхода, реализованного в Scyld ClusterWare, эта процедура автоматизируется и время сокращается до 20 секунд. Важно, что виртуализация распространяется на ядра, поэтому администратор «видит», скажем, не 100 четырехпроцессорных узлов, а один 400-процессорн—ый SMP-сервер, причем вся работа с пользователями, паролями и другие служебные операции полностью сосредоточены на «мастере».
Канадская компания Platform Computing была создана участниками проекта Utopia Университета Торонто, целью которого было изучение средств балансировки нагрузки для больших гетерогенных распределенных компьютерных систем. По итогам этой работы Сонянг Джоу, Джиньвен Ванг и Бинг Ву создали компанию, основным продуктом которой до последнего времени остается Load Sharing Facility (LSF) — средство для управления заданиями, позволяющее выполнять их в пакетном режиме в распределенной гетерогенной сети компьютеров, управляемых Unix, Windows и др. Система LSF состоит из трех компонентов: подсистемы управления распределенными ресурсами DRMAA (Distributed Resource Management Application API), подсистемы управления заданиями HPC Profile Basic и подсистемы LSF Perl API, служащей для поддержки API на языке Perl. Долгое время Platform Computing оставалась нишевым игроком, но с появлением облаков ситуация стала меняться, и компания выпустила адаптированную под задачи IaaS версию продукта Platform Infrastructure Sharing Service. Эта версия задумана как инструмент создания внутренних облаков предприятий из имеющихся собственных ресурсов, то есть область ее применения шире, чем HPC. На сегодня это единственное нейтральное по отношению к используемым аппаратным и программным технологиям решение, обеспечивающее вызов существующих приложений по требованию. Во время испытаний, проведенных Advisory Council, собранная конфигурация сопоставлялась с двумя специализированными кластерами, на которых решались задачи гидродинамики с использованием пакета Ansys Fluent и моделирования механических задач методом конечных элементов средствами пакета LSTC LS-DYNA. Каждый из этих кластеров имеет по 48 ядер на процессорах Quad-Core AMD Opteron, и им ставилась в соответствие половина облака, собранного по проекту HPC Advisory Council, – те же 48 ядер. Время выполнения тестов FLUENT и LS-DYNA на выделенных кластерах и в облаке практически совпало.
В конце 2010 года уже не только Advisory Council, но и другие компании стали предлагать технологии для создания частных облаков на принципах HPCaaS и собственные услуги HPCaaS, распространяемые через Web. Одной из первых по этому пути пошла Penguin Computing, предоставившая HPC-сервисы Penguin on Demand (POD) из облака, построенного примерно по уже описанной схеме, но с добавлением графических процессоров nVidia Tesla. От обычных облаков оно отличается отсутствием виртуализации на уровне серверов, не требуемой для HPC, а также наличием дополнительного ПО и межсоединений InfiniBand. Пользователи получают не только вычислительную мощность, но и необходимую консультационную помощь. Для оценки производительности POD была использована реальная задача из области биоинженерии – на Amazon EC2 она решалась 18 часов, а на POD – менее получаса.
В феврале 2010 года в роли провайдера HPCaaS выступила компания SGI со своим проектом Cyclone, включающим три платформы: кластеры x86 (Altix ICE) с горизонтальным масштабированием на базе InfiniBand, гибридные серверы с традиционными и графическими процессорами (Altix XE с опцией GPU) и классические SMP-системы Altix 4700 на процессорах Itanium. В этом году к ним прибавятся Altix UltraViolet на базе Nehalem-EX. В гибридных платформах будут использоваться оба популярных типа GPU: nVidia Tesla и AMD/ATI. Точный размер облака пока не оглашается, но, по оценкам руководства SGI, речь идет о тысячах процессоров. Cyclone делает доступными две модели — SaaS и IaaS. В случае SaaS пользователи Cyclone получают доступ к ПО, предлагаемому ведущими независимыми производителями программ продуктов, в случае IaaS они разворачивают собственные приложения. В качестве операционной системы служит Linux (SuSE либо Red Hat), для управления кластерами используется менеджер SGI ISLE Cluster Manager и Altair PBS Pro для управления потоком работ. С учетом полного задействования процессоров для выполнения задач HPC технологии виртуализация не используется. В роли провайдера SaaS на нынешний день Cyclone предлагает программы для решения 18 задач из 5 прикладных областей: биологии, химии, динамики жидкостей, конечного элемента и добычи данных.
На прошедшей в июне 2011 года конференции по суперкомпьютерам ISC 2011 доминировали классические решения, но и облака HPC здесь тоже были представлены теми же SGI, Peguin Computing и Platform Computing. А первая крупная международная специализированная конференция, посвященная использованию облачных технологий в целях HPC ISC Cloud 2011, пройдет в сентябре 2011 года в том же самом Мангейме, где 26 лет назад состоялся семинар, из которого выросла всемирно известная конференция ISC. Совпадение более чем символичное — хорошо бы заглянуть в будущее и посмотреть, какими станут HPC-облака через четверть века, а сейчас же можно сказать, что после некоторой задержки на старте они показывают заметное ускорение.
Готовых рыночных облачных решений HPC еще немного, но активные исследовательские работы ведутся. Комплекс исследований проводится в одном из старейших американских университетов — Университете Рутгерса, где создан Центр самоуправляемых вычислительных систем (Center for Autonomic Computing, CAC), учредителями которого стали крупнейшие компьютерные компании. В данном контексте наибольший интерес представляет проект CometCloud, направленный на создание самоуправляемого облака (autonomic cloud-computing engine), решающего задачу развертывания и управления облаком (cloudbursting), а также объединения гетерогенных облачных ресурсов, в том числе HPC-гридов и кластеров из частных облаков, виртуальных кластеров из внешних глобальных облаков c предоставлением их в виде объединенных сервисов. Проще говоря, CometCloud служит для трансформации разнообразных облачных ресурсов в единообразные облачные услуги в виде, удобном для пользователя. В CometCloud реализуется шестиуровневая модель, в которой на верхнем уровне находятся приложения, а на нижнем — «сырые» облачные ресурсы. Приложения поддерживаются программными платформами и каркасными конструкциями типа MapReduce. Ниже них находятся сервисный и инфраструктурный уровни, обеспечивающие автоматизацию управления облачными ресурсами.
В условиях небольшой нагрузки предприятие может ограничиться ресурсами своего частного облака, а если нагрузка возрастает, то автоматически подключаются экземпляры из Amazon EC2. Важнейшим достоинством Comet является его архитектура, которая гарантирует надежность и безопасность данных, то есть способность избавить облачные решения от тех слабостей, в которых их часто упрекают. Для этой цели все облако делится на три подмножества. В безопасном мастер-подмножестве выполняется управление и находятся все критически важные данные. Два других, подчиненных подмножества (рабы) не обеспечивают гарантированной надежности, но различаются по безопасности, одно гарантирует безопасность, другое — нет. Соответственно различаются способы взаимодействия мастера с рабами. Мастер передает безопасному рабу полноценные задачи на исполнение, и максимум, чем он рискует, это повторным запуском, а небезопасному рабу поручаются только отдельные вычислительные функции, раскрытие которых не влияет на безопасность хранимых в мастере данных.
Большим успехом САС стал проект, осуществленный вместе с исследовательским центром IBM T. Watson Research Center, по объединению в облако двух географически удаленных компьютеров Blue Gene и использованию их в режиме PaaS для расчета оболочек резервуаров в нефтехранилищах. Этот класс задач требует для своего решения использования компьютеров петафлопсного диапазона. Один IBM Blue Gene/P установлен в США в Йорктауне (32 узла, 16 384 процессора), другой — в Саудовской Аравии (64 узла, 5632 процессора), их удалось агрегировать в одну систему с 22 016 процессорами. Работа была удостоена приза SCALE 2011, которым награждает TCSC — технический комитет по масштабируемому компьютингу IEEE. Функции между участниками проекта распределились следующим образом: CometCloud обеспечивала оркестровку потоков работ, а IBM —физическое размещение задач.
Будущее облачных HPC связывают с открытыми системами, программно определенными сетями (Sortware Defined Network, SDN) и стандартом OpenFlow, на основе которого они строятся. Интерес к SDN вполне объясним — сетевая индустрия подошла к тому рубежу, который компьютерная индустрия преодолела лет тридцать назад, когда появилась альтернатива мэйнфреймам в виде открытых систем, полностью видоизменившая ИТ-ландшафт. Тогда вместо монолитных компьютеров, выпускать которые способно считанное число крупных компаний, появились рабочие станции и ПК, а рынок оказался распределен между сотнями и тысячами компаний, что способствовало немыслимому при монополизации прогрессу в оборудовании, но еще больше — в программном обеспечении: возникло такое количество разнообразных приложений, которое невозможно было представить себе во времена мэйнфреймов. Нечто подобное, но с поправкой на отраслевые особенности должно произойти сейчас и в сетях. В радикальных изменениях заинтересованы все телекоммуникационные компании и создатели крупных ЦОД, в общем, практически все участники сетевого рынка. Им требуется более разнообразная функциональность, способная обеспечить большую эффективность сетей и решение множества возникающих проблем.
Основная идея SDN не сложна, суть ее в явном разделении двух аспектов деятельности сетевого оборудования: control plane, то есть «мозги сети», решающие, как и куда направить трафик, и рабочая лошадь data plane, то есть та часть, которая передает пакеты. Сегодня обе части собраны вместе в сложнейших маршрутизаторах, но можно передать функцию управления в специальную выделенную часть, реализованную на обычных имеющихся на рынке серверах, и перенести логику маршрутизации в работающие на них программы. OpenFlow — это протокол, определяющий то, как пользователям SDN обнаруживать потоки данных, пути, по которым они должны распространяться, независимо от того, какое аппаратное обеспечение используется.
***
Привлекательность облачных HPC-сервисов становится все более очевидной, и после решения ряда проблем они смогут заменить суперкластеры, не обеспечивающие сегодня необходимого качества услуг и вынуждающие пользователя работать в системной среде низкого уровня.