Кластерные системы
Развитие кластерных систем (КС) в России
Кластер — это модульная многопроцессорная система, созданная на базе стандартных вычислительных узлов, соединенных высокоскоростной коммуникационной средой. Сейчас слова «кластер» и «суперкомпьютер» в значительной степени синонимы, но прежде чем об этом стало можно с уверенностью говорить, аппаратные средства прошли длительный цикл эволюции. В течение первых 30 лет с момента появления компьютеров, вплоть до середины 1980-х гг., под «суперкомпьютерными» технологиями понимали исключительно производство специализированных особо мощных процессоров. Однако появление однокристального микропроцессора практически стерло разницу между «массовыми» и «особо мощными» процессорами, и с этого момента единственным способом создания суперкомпьютера стал путь объединения процессоров для параллельного решения одной задачи. Алексей Лацис, один из создателей российского суперкомпьютера МВС-1000М, в своей книге «Как построить и использовать суперкомпьютер» называет это «первой суперкомпьютерной революцией».
Примерно до середины 1990-х гг. основное направление развития суперкомпьютерных технологий было связано с построением специализированных многопроцессорных систем из массовых микросхем. Один из сформировавшихся подходов — SMP (Symmetric Multi Processing), подразумевал объединение многих процессоров с использованием общей памяти, что сильно облегчало программирование, но предъявляло высокие требования к самой памяти. Сохранить быстродействие таких систем при увеличении количества узлов до десятков было практически невозможно. Кроме того, этот подход оказался самым дорогим в аппаратной реализации. На порядок более дешевым и практически бесконечно масштабируемым оказался способ МРР (Massively Parallel Processing), при котором независимые специализированные вычислительные модули объединялись специализированными каналами связи, причем и те и другие создавались под конкретный суперкомпьютер и ни в каких других целях не применялись.
Идея создания так называемого кластера рабочих станций фактически явилась развитием метода МРР, ведь логически МРР-система не сильно отличалась от обычной локальной сети. Локальная сеть стандартных персональных компьютеров, при соответствующем ПО использовавшаяся как многопроцессорный суперкомпьютер, и стала прародительницей современного кластера. Эта идея получила более совершенное воплощение в середине 1990-х гг., когда благодаря повсеместному оснащению ПК высокоскоростной шиной PCI и появлению дешевой, но быстрой сети. Fast Ethernet кластеры стали догонять специализированные МРР-системы по коммуникационным возможностям. Это означало, что полноценную МРР-систему можно было создать из стандартных серийных компьютеров при помощи серийных коммуникационных технологий, причем такая система обходилась дешевле в среднем на два порядка.
Вот самые знаменитые суперкомпьютеры с кластерной архитектурой «первого поколения»: Beowulf (1994, NASA Goddard Space Flight Center) — 16-процессор-ный кластер на процессорах Intel 486DX4/100 МГц; Avalon (1998, Лос-Аламосская национальная лаборатория) — Linux-кластер на базе процессоров Alpha 21164А/533 МГц. Первоначально Avalon состоял из 68 процессоров, затем их число увеличилось до 140; его производительность на тесте LINPACK 48,6 GFlops* позволила ему занять 113-е место в 12-й редакции рейтинга самых мощных компьютеров мира Тор500 рядом со 152-процессорной SMP-системой IBM RS/6000 SP. Первой отечественной системой, вошедшей в ТорбОО, стал кластер МВС-1000М, изготовленный НИИ «КВАНТ» и Институтом прикладной математики Российской академии наук. Он состоял из 384 узлов на базе процессоров Alpha 21164 компании DEC-Compaq.
* Flops (floating point operations per second) — количество операций с плавающей точкой в секунду, единица измерения производительности суперкомпьютеров. GFlops (гигафлопс) — миллиард операций с плавающей точкой в секунду; TFlops (терафлопс) — триллион операций с плавающей точкой в секунду. Реальная производительность самого мощного на сегодня суперкомпьютера превышает 136 TFlops; всего год назад этот показатель составлял 35 TFlops.
Различают пиковую и реальную производительность суперкомпьютеров. Пиковая производительность многопроцессорной системы (кластера, SMP-системы и т. д.) — теоретическое значение, недостижимое на практике. Оно получается умножением пиковой производительности процессора на число процессоров в системе. Пиковая производительность ЦП в общем случае получается путем умножения его тактовой частоты на максимальное число операций, выполняемых за один такт. Реальная производительность кластера — это производительность, полученная при решении реальной задачи (академической или промышленной). Например, системы в рейтинге Тор500 ранжируются по результатам теста LINPACK — реальной академической задачи на решение системы линейных уравнений.
Новый мощный толчок развитию кластерных технологий, помимо появления более совершенных коммуникационных сетей, дал быстрый рост производительности вновь выпускаемых массовых процессоров, что сделало высокопроизводительные решения доступными как никогда. Например, «СКИФ К-500», второй отечественный кластер, вошедший в ТорбОО, построен на базе 128 процессоров Intel Xeon и системной сети SCI. Построенный осенью 2003 г. для российско-белорусской государственной суперкомпьютерной программы «СКИФ», этот кластер занял в рейтинге 407-е место с реальной производительностью в 423,6 GFlops. Второй «топовый» кластер государственной программы, «СКИФ К-1000» на базе 576 процессоров AMD Opteron и системной сети InfiniBand, появился в октябре 2004 г. и вошел в первую сотню Тор500 с реальной производительностью 2,032 TFlops. Оба кластера «СКИФ», установленных в Белоруссии, построены компанией «Т-Платформы» с участием ИПС РАН и белорусских партнеров и используют российские суперкомпьютерные технологии. Самый мощный на данный момент кластер на территории России — МВС 15000БМ с реальной производительностью более 5,3 Tflops, он занимает 56-е место в Тор500 и установлен в Межведомственном суперкомпьютерном центре (МСЦ РАН). Кластер построен из вычислительных узлов компании IBM на базе процессоров PowerPC и системной сети Myrinet.
Бурное развитие кластерных технологий за последние годы хорошо видно из анализа списка Тор500: с 2000 по 2004 г. доля кластеров в списке увеличилась с 2,2 до 60,8%. Если в 2000 г. в числе 40 самых мощных установок присутствовало лишь два кластера (самый мощный — 31-е место), то к 2004 г. их число среди первых 40 машин составило 24). При этом, по данным последней редакции Тор500, более 71,5% процессоров, использованных для ерздания суперкомпьютеров, — это массово выпускаемые процессоры компаниями Intel и AMD.
Кластерные технологии применяются и в новейших суперкомпьютерных разработках ведущих изготовителей: например, в самом мощном на сегодня суперкомпьютере IBM BlueGene/L с производительностью более 136 TFlops использованы многие элементы кластерной архитектуры.
Сфера применения кластерных систем сейчас нисколько не уже, чем суперкомпьютеров с другой архитектурой: они не менее успешно справляются с задачей моделирования самых разных процессов и явлений. Суперкомпьютерное моделирование может во много раз удешевить и ускорить вывод на рынок новых продуктов, а также улучшить их качество. Например, вместо того чтобы строить дорогостоящие тестовые модели новых автомобилей, чтобы затем разбить их об стенку ради проведения инженерных расчетов, можно быстрее и точнее все посчитать на компьютерных моделях. Благодаря этому многим западным автомобильным концернам удалось сократить срок разработки новой модели автомобиля в пять раз — с 10 до 2 лет. Компьютерная обработка геофизических данных позволяет создавать высокодетализированные модели нефтяных и газовых месторождений, обеспечивая более эффективную, безопасную и дешевую разработку скважин.
Именно развитие кластерных технологий сделало высокопроизводительные вычисления широко доступными и позволило самым разным предприятиям воспользоваться их преимуществами. Вот как распределяются области применения 500 самых мощных компьютеров мира: 44,3% — добывающая, электронная, автомобильная, авиационная и др. отрасли тяжелой промышленности и машиностроения, чуть более 20% — наука и образование, суперкомпьютерные центры. Более 18% приходится на погодные и климатические исследования, 7% — ядерные, космические, энергетические и военные государственные программы, 3,5% — финансовые компании и банки. Кроме того, в списке есть компании и организации, занимающиеся медициной и разработкой новых лекарств, компьютерной графикой, перевозками, торговлей, производством продуктов питания, консалтингом и государственным управлением.
Что касается использования суперкомпьютеров в России, то в текущем рейтинге суперкомпьютеров СНГ Тор50, впервые изданном в декабре 2004 г., представлены только три класса пользователей: научные институты и университеты, предприятия, занятые в тяжелой и нефтедобывающей промышленности, а также финансовые структуры.
В среднем отечественные суперкомпьютеры пока еще сильно уступают западным по производительности: машины, используемые для научных исследований, в 15 раз, вычислительные ресурсы финансовых компаний — в 10 раз, промышленные суперкомпьютеры — в 9 раз. Однако уже вторая редакция списка Тор50, опубликованная в апреле 2005 г., демонстрирует быстрое развитие отрасли. Так, количество систем, работающих в промышленной сфере, увеличилось с 2 до 16%, причем их средняя производительность выросла сразу на 135%. Число суперкомпьютеров финансовых компаний и банков также возросло с 2 до 18%. Доля суперкомпьютеров, используемых для научных исследований, сократилась с 96 до 66%, а их средняя производительность выросла на 70%. В целом вторая редакция отечественного суперкомпьютерного рейтинга демонстрирует существенный рост доли систем коммерческого использования. Самое большое количество отечественных суперкомпьютеров поставлено фирмой IBM (26%), но российские изготовители лишь немного уступают ей.
Кластерные системы — статистика
Ниже приведен сравнительный анализ оснащенности суперкомпьютерами предприятий СНГ и наиболее развитых мировых держав в различных отраслях экономики на основе мирового суперкомпьютерного рейтинга Тор500 и рейтинга самых мощных компьютеров СНГ Тор50, а также сравнение первой и второй редакций рейтинга Тор50 по этому показателю.
Сравнительные данные по использованию суперкомпьютеров
Области использования
В мире (Тор500), %
В СНГ (Тор50, 2-я редакция), %
В СНГ (Тор50, 1-я редакция), %
Промышленность: электронная; тяжелая (автомобильная, авиационная, металлургия и др.); добывающая (геологоразведка, нефте- и газодобыча)
44,3
16
2
Вычислительные центры, наука и образование: суперкомпьютерные центры, университеты и научные институты (физика, математика, химия, биология, генетика), поставщики суперкомпьютеров, системные интеграторы
21,2
66
96
Прогнозы погоды и климатические исследования
18,5
-
-
Стратегические исследования, программы Министерства обороны, космическая и ядерная программы
7,1
-
-
Финансы: банки, финансовые корпорации, страхование, финансовые прогнозы и консалтинг
3,5
18
2
Потребительский сектор, медицина и фармакология, транспорт, торговля, производство потребительских товаров, продуктов питания
3
Медиа: цифровые видеотехнологии, компьютерные игры и пр.
2,2
-
-
Государственное управление
0,2
-
-
Сравнительные данные по производительности суперкомпьютеров
Области использования
Максимальный уровень, GFIops
Средний уровень,
GFIops
В мире
В СНГ (Тор50-2)
В мире
В СНГ (Тор50-2)
Исследования
136800
3052 (меньше в 44 раза)
1800
120 (меньше в 15 раз)
Финансы
4713
438,6 (меньше в 10,7 раза)
1500
139 (меньше в 10,7 раза)
Промышленность
3755
2032 (меньше в 1,8 раза)
1500
165 (меньше в 9 раз)
Типичные задачи кластерных систем
Сегодня можно говорить о том, что кластерные системы успешно применяются для всех задач суперкомпьютинга — от расчетов для науки и промышленности до управления базами данных. Практически любые приложения, требующие высокопроизводительных вычислений, имеют сейчас параллельные версии, которые позволяют разбивать задачу на фрагменты и обсчитывать ее параллельно на многих узлах кластера. Например, для инженерных расчетов (прочностные расчеты, аэромеханика, гидро- и газодинамика) традиционно применяются так называемые сеточные методы, когда область вычислений разбивается на ячейки, каждая из которых становится отдельной единицей вычислений. Эти ячейки обсчитываются независимо на разных узлах кластера, а для получения общей картины на каждом шаге вычислений происходит обмен данными, распространенными в пограничных областях.
Для практических расчетов (3D-анимация, крэш-тесты, разведка нефтяных и газовых месторождений, прогнозирование погоды) обычно используются кластеры из 10-200 узлов. При этом основная задача — обеспечение эффективной работы кластера с конкретным приложением. Архитектура кластера должна обеспечивать масштабируемость ПО при увеличении количества узлов, т. е. прирост производительности при добавлении новых вычислительных модулей. Для этого важно правильно выбрать конфигурацию кластера в зависимости от профиля обмена данными между экземплярами программы, запущенными на разных узлах. Здесь нужно учитывать общий объем пересылаемых данных, распределение длин сообщений, использование групповых операций и т. п.
Сегодня даже те задачи, для решения которых традиционно применялись многопроцессорные системы с общей памятью, такие, как управление крупными базами данных, успешно решаются на кластерах. Появление на рынке таких продуктов, как, например, Oracle RAC (Real Applications Cluster), дало возможность применять кластерные системы в области баз данных, а новая версия СУБД Oracle 10g, построенная на базе GRID-технологий, обеспечивает максимально эффективное использование кластерной архитектуры для решения этих задач. Таким образом, благодаря доступности кластерных решений число предприятий, которые могут позволить себе кардинально упростить и ускорить работу с корпоративной базой данных, существенно увеличивается.
Кластерные решения — наиболее экономически обоснованный выбор. В отличие от большинства серверных систем с общей памятью кластерные решения легко масштабируются до систем большей производительности. Таким образом, при ужесточении требований заказчика к производительности необязательно покупать новую систему — можно добавить стандартные вычислительные узлы и легко нарастить старую. Причем диапазон масштабируемости очень широк: например, 288-узловой кластер «СКИФ К-1000» с пиковой производительностью 2,5 TFlops можно нарастить до системы мощностью 30 TFlops путем объединения стандартных вычислительных модулей.
Кластерные решения обладают наилучшим на сегодня соотношением цена/производителыюсть и имеют существенно более низкую совокупную стоимость владения. Это достигается благодаря масштабируемости и использованию стандартных общедоступных компонентов, цена которых постоянно снижается. Два кластерных двухпроцессорных узла в среднем на 35% дешевле, чем один четырехпроцессорный SMP-сервер, причем с ростом количества процессоров преимущество кластерных решений по этому параметру увеличивается. Кроме того, кластерная архитектура обеспечивает великолепную отказоустойчивость системы: при выходе из строя одного или нескольких вычислительных модулей (или узлов) кластер не теряет работоспособности и новые задачи могут быть запущены на меньшем числе узлов. Вышедший из строя узел легко и быстро вынимается из стойки и заменяется новым, который сразу же включается в работу. Это возможно благодаря коммутируемой топологии современных системных сетей, «когда обмен сообщениями между двумя узлами может идти многими путями. В ходе эксплуатации система типа «СКИФ К-1000» предполагает возможный выход из строя не более 2 узлов в год.
Архитектура кластерных систем
Итак, в настоящее время кластер состоит из вычислительных узлов на базе стандартных процессоров, соединенных высокоскоростной системной сетью (интер-коннектом), а также, как правило, вспомогательной и сервисной сетями. Большинство кластерных систем списка Тор500 выполнены на процессорах Intel (Intel Xeon, Intel Xeon EM64T, Intel Itanium 2). Часто используются процессоры Power и PowerPC компании IBM. В последнее время популярностью пользуются процессоры AMD (особенно AMD Opteron и его недавно вышедшая двухъядерная версия).
В качестве вычислительных узлов чаще всего используются двухпроцессорные SMP-серверы в корпусе от 1U до 4U, собранные в 19-дюйм стойки. Компактные устройства позволяют создавать высокопроизводительные решения с максимальной удельной плотностью, более крупные — недорогие системы. Иногда ведущие изготовители предлагают собственный формфактор: например, IBM, Verari, LinuxNetworx и другие компании предлагают вычислительные узлы на основе блэйд-технологий, которые обеспечивают высокую плотность установки, но удорожают решение. На российском рынке блэйд-решения пока мало востребованы из-за их высокой стоимости.
Каждый узел работает под управлением своей копии стандартной операционной системы, в большинстве случаев — Linux. Состав и мощность узлов могут быть разными в рамках одного кластера, однако чаще строятся однородные кластеры. Выбор конкретной коммуникационной среды (интерконнекта) определяется многими факторами: особенностями решаемых задач, доступным финансированием, требованиями к масштабируемости и т. п. В кластерных решениях применяются такие технологии интерконнекта, как Gigabit Ethernet, SCI, Myrinet, QsNet, InfiniBand.
Кластер — это сложный программно-аппаратный комплекс, и задача построения кластера не ограничивается объединением большого количества процессоров в один сегмент. Для того чтобы кластер быстро и правильно считал задачу, все комплектующие должны быть тщательно подобраны друг к другу с учетом требований программного обеспечения, так как производительность кластерного ПО сильно зависит от архитектуры кластера, характеристик процессоров, системной шины, памяти и интерконнекта. Использование тех или иных компонентов сильно зависит от задачи, для которой строится кластер. Для некоторых хорошо распараллеливаемых задач (таких, как рендеринг независимых сюжетов в видеофрагменте) основной фактор быстродействия — мощный процессор, и производительность интерконнекта не играет основной роли. В то же время для задач гидро- и аэродинамики, расчета крэш-тестов важна производительность системной сети, иначе увеличение числа узлов в кластере будет мало влиять на скорость решения задачи.
Системная сеть, или высокоскоростная коммуникационная среда, выполняет задачу обеспечения эффективности вычислений. Gigabit Ethernet — наиболее доступный тип коммуникационной среды, оптимальное решение для задач, не требующих интенсивных обменов данными (например, визуализация трехмерных сцен или обработка геофизических данных). Эта сеть обеспечивает пропускную способность на уровне MPI* (около 70 Мбайт/с) и задержку (время между отправкой и получением пакета с данными) примерно 50 мкс. Myrinet — наиболее распространенный тип коммуникационной среды с пропускной способностью до 250 Мбайт/с и задержкой 7 мкс, а новое, недавно анонсированное ПО для этой сети позволяет сократить эту цифру в два раза. Сеть SCI отличается небольшими задержками — менее 3 мкс на уровне MPI — и обеспечивает пропускную способность на уровне MPI от 200 до 325 Мбайт/с. QsNet — очень производительное и дорогое оборудование, обеспечивающее задержку менее 2 мкс и пропускную способность до 900 Мбайт/с. Наиболее перспективная на сегодня технология системной сети — InfiniBand. Ее текущая реализация имеет пропускную способность на уровне MPI до 1900 Мбайт/с и время задержки от 3 до 7 мкс. Один из наиболее интересных продуктов, появившихся в последнее время, — высокоскоростной адаптер компании PathScale, который реализует стандартные коммутаторы и кабельную структуру InfiniBand, используя собственный транспортный протокол. Это позволило достичь рекордно низкого времени задержки — 1,3 мкс.
* MPI — наиболее распространенный и производительный протокол передачи сообщений в кластерных системах, а также интерфейс программирования для создания параллельных приложений.
Сейчас существуют два способа внутреннего устройства стандартных системных сетей. Например, сеть SCI имеет топологию двух- или трехмерного тора и не требует применения коммутаторов, что уменьшает стоимость системы. Однако эта технология имеет существенные ограничения по масштабируемости.
Остальные общедоступные высокоскоростные технологии системных сетей Myrinet, QsNet, InfiniBand используют коммутируемую топологию Fat Tree. Вычислительные узлы кластера соединяются кабелями с коммутаторами нижнего уровня (leaf, или edge switches), которые в свою очередь объединяются через коммутаторы верхнего уровня (core, или spine switches). При такой топологии имеется много путей передачи сообщений между узлами, что позволяет повысить эффективность передачи сообщений благодаря распределению загрузки при использовании различных маршрутов. Кроме того, при помощи Fat Tree можно объединить практически неограниченное количество узлов, сохранив при этом хорошую масштабируемость приложений.
Задача эффективного доступа узлов к данным (например, к внешнему хранилищу) чаще всего решается с помощью вспомогательной сети (как правило, Gigabit Ethernet). Иногда для этого применяют каналы Fibre Channel (это значительно увеличивает стоимость системы) или системную сеть (например, InfiniBand в кластерах баз данных). Вспомогательная (или сервисная) сеть также отвечает за распределение задач между узлами кластера и управление работой заданий. Она используется для файлового обмена, сетевой загрузки ОС узлов и управления узлами на уровне ОС, в том числе мониторинга температурного режима и других параметров работы узлов. Сервисная сеть применяется и для так называемого управления узлами out-of-band, т. е. без участия операционной системы. К нему относятся «плавное», последовательное включение и выключение узлов вр избежание большого скачка напряжения, аппаратный сброс узла и доступ к его консоли на всех этапах работы, что позволяет диагностировать поломки в недоступных узлах, изменять настройки ОС и др. Ведущие изготовители суперкомпьютеров, такие, как IBM, SUN, HP, вводят в состав узла специальные платы, позволяющие осуществлять управление out-of-band, которые в пересчете на весь кластер довольно дороги. К счастью, есть гораздо более доступное российское решение с аналогичной функциональностью — сеть ServNet, разработанная в Институте программных систем РАН и успешно применяемая в отечественных кластерных системах, в частности в кластерах «СКИФ». Компактная плата ServNet (всего 66х33 мм) легко встраивается в вычислительный узел и позволяет, кроме всего вышеперечисленного, изменять параметры BIOS узла, выбирать загружаемую ОС, изменять параметры загрузки ядра Linux, контролировать критические сообщения ОС и проводить «посмертное» чтение (из энергонезависимой памяти платы ServNET) нескольких последних сообщений ОС.
Суперкомпьютеры — это всегда очень большие мощности. В сложившейся ситуации уже невозможно рассматривать высокопроизводительные вычислительные системы отдельно от систем их размещения, охлаждения и электропитания. Например, «СКИФ К-1000» потребляет более 89 кВт, и практически все уходит в тепло. Такой мощности было бы достаточно для обогрева небольшого дома, но все 288 узлов формфактора 1U стоят в восьми стойках, и без продуманного теплового дизайна не обойтись. В первых суперкомпьютерах использовалось жидкостное охлаждение, но такие охладительные системы нередко выходили из строя. В современных суперкомпьютерах применяют воздушное охлаждение, и необходимый температурный режим обеспечивается двумя факторами. Во-первых, продуманным тепловым дизайном вычислительного узла: стандартные шасси необходимо модернизировать для того, чтобы воздушный поток, создаваемый внутренними вентиляторами, максимально эффективно охлаждал процессоры. Во-вторых, поддержанием рабочей температуры в помещении: горячий воздух должен быть либо отведен от узлов и кондиционирован, либо направлен за пределы помещения.
Оптимизация энергопотребления — не менее серьезная задача. По мнению мировых экспертов, при современных темпах роста производительности систем и сохранении характеристик их энергопотребления уже к 2010 г. самые мощные суперкомпьютеры будут потреблять столько энергии, что обеспечить ее подачу и отвод тепла будет невозможно. Однако проблема обеспечения бесперебойного питания существует и для систем со средней производительностью, и каждый изготовитель решает ее по-своему.
Классификация кластерных систем
Кластерные системы могут использовать самые разные платформы и типы интерконнектов л, как правило, классифицируются не по набору комплектующих, а по областям применения. Выделяют четыре типа кластерных систем: вычислительные кластеры, кластеры баз данных, отказоустойчивые кластеры и кластеры для распределения загрузки. Самая многочисленная группа — вычислительные кластеры. Она может быть разбита на подгруппы; правда, классификации внутри этой группы подлежат уже не собственно вычислительные машины, а готовые программно-аппаратные кластерные решения. Такие системы «под ключ» имеют предустановленное прикладное ПО, необходимое заказчику для решения его задач. Решения, оптимизированные для разных приложений, различаются подбором компонентов, обеспечивающим наиболее производительную работу именно этих приложений при наилучшем соотношении цена/качество.
Основные типы готовых решений в мировой практике:
промышленные кластеры для инженерных задач;
кластеры для нефте- и газодобывающей промышленности;
кластеры для исследований в области «наук о жизни», или life sciences (поиск новых лекарств, генетика, молекулярное моделирование, биоинформатика);
кластеры для стратегических исследований (исследования погоды и климата, ядерная физика и физика частиц, космические исследования, оборонные программы);
кластеры для индустрии развлечений (компьютерная графика и спецэффекты, компьютерные онлайновые игры);
грид-решения*;
кластеры для высокопроизводительных вычислений в различных областях науки и образования.
Кластеры баз данных появились недавно. Эти системы работают с параллельными версиями баз данных и используются в крупных организациях для работы CRM-и ERP-систем, а также трапзакционных баз данных. Сегодня эти системы — серьезный конкурент традиционным серверам с общей памятью благодаря лучшему соотношению цена/производительность, масштабируемости и отказоустойчивости.
Отказоустойчивые кластеры строят для того, чтобы наилучшим образом обеспечить надежность работы критически важных приложений. Работа приложения дублируется на разных узлах, и в случае ошибки на одном из них приложение продолжает работать или автоматически перезапускается на другом. Такие кластеры не бывают большими, и пользователи часто строят их сами. Кластерные технологии также используются для распределения большого потока запросов по многим серверам. Такие решения часто применяются для поддержки Web-узлов с динамическим содержимым, постоянно обращающихся к базам данных, например, поисковых систем. В зависимости от размеров сервиса кластеры распределения загрузки могут иметь достаточно большое количество узлов.
*Грид (GRID) — перспективное направление развития ИТ технологий. Хотя оно пока не воплощено в индустриальных стандартах, все страны — лидеры ИТ-рынка — имеют государственные программы разработки грид-технологий. Цель этих программ;
интеграция вычислительных мощностей — интеграция разнородных вычислительных систем в единое пространство с динамическим распределением ресурсов между приложениями;
интеграция емкостей хранилищ — нечто подобное территориально распределенным RAID-системам;
интеграция источников данных — например, интеграция в единую виртуальную базу разнородных баз данных, распределенных территориально, реализованных на разных аппаратных платформах и принципах.
Термин «грид» создан по аналогии с понятием «power grid» — система, интегрирующая генерирующие мощности электрических сетей в единое «хранилище» энергии, откуда она перераспределяется вне зависимости от ее источника. Внедрение таких технологий в сфере высокопроизводительных вычислений позволит кардинально упростить доступ к вычислительным ресурсам и сделать их использование на порядок более эффективным. Помимо интеграции вычислительных ресурсов грид-технологии позволят интегрировать разнородные емкости хранения информации и базы данных для создания глобального информационного пространства. Сегодня ясно, что грид-системы получат большое распространение в научных и академических кругах, т. е. в условиях относительной открытости информационных ресурсов. В коммерческом сегменте, где очень остро стоит вопрос обеспечения безопасности обмена информацией и защиты интеллектуальной собственности, такие системы, по-видимому, будут востребованы в меньшей степени.
Специализированное ПО
Работа кластерных систем обеспечивается четырьмя видами специализированных приложений, как то: операционные системы (как правило, Linux), средства коммуникации (для вычислительных кластеров это обычно библиотека MPI), средства разработки параллельных приложений и ПО для администрирования кластеров.
Для написания параллельных приложений, обеспечивающих взаимодействие между узлами кластера, используются библиотеки программирования MPI. MPI стандартизует набор интерфейсов программирования, на которых можно писать приложения, легко переносимые на различные кластерные архитектуры. Существует несколько популярных реализаций MPI, совместимых с различными типами интерконнектов, среди которых есть как свободно распространяемые, так и коммерческие (например, от компаний Scali, Intel, Verari Systems). Некоторые кластерные приложения вместо интерфейса MPI используют стандартный TCP/IP, но, как правило, с меньшей эффективностью.
Средства разработки параллельных приложений содержат компиляторы с различных языков программирования (например, компаний Absoft, Intel, PathScale, Portland Group), отладчики параллельных приложений (компаний Absoft, Allinea, Etnus), а также средства оптимизации параллельных приложений (например, компании PathScale). ПО для администрирования кластеров позволяет контролировать запуск и планирование выполнения пакетных заданий, а также их распределение между вычислительными узлами кластера. Эти программные средства управляют распределением нагрузки и увеличивают эффективность работы высокопроизводительных вычислительных систем. Наиболее распространены пакеты компаний Altair, Platform, Sun и Scali.
Что касается управления и мониторинга кластеров, то это ПО сильно зависит от используемых аппаратных средств и обычно поставляется изготовителем оборудования. Можно также найти немало свободно распространяемых версий различной функциональности. Существует и российская версия такого ПО — разработанный в ИПС РАН программный пакет FLAME SKIP.
Наиболее популярные параллельные прикладные программные пакеты:
1) инженерные:
CFD, CAD, CAE, т. е. гидро- и газодинамика, прочностной анализ, проектирование и расчет конструкций: программные пакеты FLUENT компании Fluent, пакеты STAR-CD и STAR CCM+, созданные CD adapco Group, MAGMASOFT от MAGMA, Altair HyperWorks от Altair Engineering и др., в том числе российская разработка FlowVision компании «ТЕСИС»;
расчеты столкновения конструкций и FF.A (конечно-элементный анализ): LS-DYNA от LSTC, программные пакеты от ABAQUS, ANSYS, MSC.Software;
2) поиск новых лекарств, генетика и др. программные пакеты от TurboWorx;
3) ПО для обработки геофизических данных для нефтедобывающей отрасли: программные средства компаний Paradigm, Schlumberger.
Перспективы развития кластерных технологий на российском рынке
Перспективы отечественного рынка суперкомпьютеров в целом напрямую зависят от развития российской экономики. Если экономика, в частности отечественное производство, будет развиваться, все большее число предприятий найдут средства на приобретение высокопроизводительных решений. Отечественные предприятия уже осознают, что для того чтобы конкурировать с западной продукцией даже на внутреннем рынке, им необходима мощная вычислительная техника. Подтверждением этому может служить ОАО «Силовые машины»: сильное производство, продукция высокого качества, победитель многих тендеров и одновременно держатель одной из 30 самых мощных суперкомпьютерных систем России (см. www.supercomputers.ru). Среди других ведущих отечественных предприятий, активно занимающихся технологическим переоснащенном производства, — РКК «Энергия», ФГУП ММПП «САЛЮТ», НИКИЭТ, ОАО «Ленинградский металлический завод», ОАО «Электросила», ЦНИИ им. А. Н. Крылова, ФГУП ЦКБМТ «Рубин», НПО ЦКТИ им. И. И. Ползунова, АО «АвтоВАЗ», ОКБМ им. Африкантова, НПО «Мотор», НПО «Геофизика», ГосНИИАС, ВНИИЭФ, ВНИИТФ, ЦАГИ, ЦИАМ, ОАО «ОКБ Сухого», ОАО «Русский алюминий» и многие другие.
По прогнозам участников отечественного рынка суперкомпьютеров, его рост за ближайшие 3-5 лет составит несколько сотен процентов. И если еще год назад заказчиками кластерных систем выступали в основном научно-исследовательские институты и вузы, то в ближайшем будущем эти решения будут находить все больший спрос в коммерческом секторе, как это постепенно происходит уже сейчас. При этом, по мнению изготовителей, основную долю рынка будут по-прежнему занимать кластерные решения с наилучшим на сегодня соотношением цена/производительность.
Участники рынка выделяют три основных класса потребителей кластерных решений в России. Во-первых, это промышленные предприятия, занимающиеся разведкой и добычей полезных ископаемых, машиностроением, производством лекарственных препаратов. Во-вторых, это научные институты и университеты, для которых оснащенность высокопроизводительной техникой не только условие конкурентоспособности научных разработок. Как показывает практика МГУ им. М. В. Ломоносова, Южно-Уральского государственного университета, Санкт-Петербургского государственного политехнического университета и др., наличие высокопроизводительных вычислительных ресурсов позволяет научным организациям выступать в роли региональных центров инновационной активности, способных предоставить промышленным предприятиям современную компьютерную поддержку. В этих вузах уже ведутся инженерные расчеты и разработки в интересах промышленных предприятий регионов, и такая практика доказала свою эффективность. Надо отметить, что участники российского рынка суперкомпьютеров стремятся обеспечить благоприятные условия для его развития, не дожидаясь поддержки государства. Так, Научно-исследовательский вычислительный центр МГУ им. М. В. Ломоносова в сотрудничестве с российскими коммерческими компаниями — поставщиками кластерного оборудования и ПО внедряет специальную программу, позволяющую вузам и научным институтам приобретать технику и обучать специалистов на особых условиях.
Наконец, третья группа потребителей — пользователи кластерных баз данных. Кластерные решения могут быть с успехом использованы в крупных компаниях практически вне зависимости от отрасли для ведения корпоратив