Как известно, первые компьютеры (в их современном понимании) появились в середине прошлого века в связи с необходимостью выполнения сложных математических расчетов. Потом сфера применения этих устройств стала быстро расширяться за счет того, что возможности собственно вычислений (обработки информации) были дополнены еще тремя ключевыми функциями — хранение огромных массивов информации (и управление ими), интерактивное взаимодействие с людьми и удаленные коммуникации.
Тем не менее можно довольно уверенно утверждать, что в моменту перестройки в СССР в конце 1980-х подавляющая часть имеющегося парка ЭВМ применялась для чисто вычислительных задач класса “научно-технических расчетов” (наверное, не менее 70—80% мощностей). Потом пришли иные времена, и сфера основного применения компьютеров в нашей стране быстро сместилась в направлении широкого класса бизнес-задач, характеризуемых как раз тесной связкой “вычисления + данные + пользователи + коммуникации”. Расчетные задачи отошли далеко на задний план и практически исчезли из поля зрения “рыночных интересов”. В какой-то степени отражением этой ситуация было и то, что на смену термину “вычислительная техника” пришло название “информационные технологии”.
Но, разумеется, потребность в расчетных задачах у общества нисколько не уменьшалась. Совершенно очевидно, что она только росла, причем очень быстро. При этом в последнее десятилетие, по мнению ряда экспертов, интерес рынка именно к вычислительным задачам стал расти опережающими темпами. Связано это не только с повышением роли научно-исследовательских работ в мировой экономике, но и потребностями при решении бизнес-задач. И это опять нашло “словарное” подтверждение в виде начала распространения термина “высокопроизводительные вычисления” (high performance computing, HPC). И что еще важнее — в повышении внимания к этой теме со стороны ведущих ИТ-вендров, приступивших к выпуску специальных HPC-решений.
Сфера HPC порой отождествляется с применением суперкомпьютеров, но на самом деле это не так. Суперкомпьютеры — это лишь один из вариантов реализации HPC, который подразумевает создание специализированных локальных вычислительных комплексов (фактически это инфраструктурные проекты типа ЦОДа), использующих собственные операционные среды и зачастую ориентированных на решение определенного класса задач. Второй вариант (его часто называют именно HPC, но в более узком значении термина), который сейчас находит все более широкое применение, базируется на идее распределенных вычислений с использованием стандартных, в том числе разнородных, программно-аппаратных средств.
Конечно, основной эффект тут получается за счет распараллеливания вычислительных процессов, но достаточно востребованным вариантом является и последовательная обработка с перемещением ее на освобождающиеся мощности. С некоторыми допущениями можно сказать, что HPC — это развитие идей Grid Computing, но на более массовом уровне. Напомним, что Grid в своей начальной трактовке подразумевал создание географически распределенной сети, связывающей независимые суперкомпьютерные центры. HPC больше ориентируется на создание внутрикорпоративных систем, причем стандартной архитектуры.
Говоря об HPC, нужно подчеркнуть, что ключевой идеей тут является исполнение параллельных вычислительных процессов. Но при этом надо иметь в виду, что возможность распараллеливания конкретного приложения должна быть изначально реализована внутри программы, на этапе ее проектирования и кодирования. Это задача архитектора и разработчика ПО (причем очень непростая и реализуемая далеко не во всех случаях), а не исполняющего HPC-механизма.
HPC-решение от Microsoft
Корпорация Microsoft вышла на рынок HPC не так давно: летом 2006 г. она выпустила Windows Compute Cluster Server 2003 (CCS), в котором использовался протокол Microsoft Messaging Passing Interface v2 (MS-MPI) для взаимодействия вычислительных узлов. В новой версии серверной ОС продукт получил название Windows HPC Server 2008 — он вышел на рынок в сентябре 2008-го. В нем был реализован новый высокоскоростной сетевой протокол NetworkDirect RDMA, в него были включены дополнительные средства управления, а также появилась поддержка кластерной интероперабельности на основе спецификаций High Performance Computing Basic Profile (HPCBP), созданных сообществом Open Grid Forum.
Присутствие Microsoft на верхнем уровне высокопроизводительных систем пока невелико. По данным Википедии, по состоянию на ноябрь 2009 г. Windows HPC занимал лишь 1% в списке 500 самых мощных суперкомпьютеров мира (5 из 500, но по мощностям, измеряемым в гигафлопсах, доля чуть выше — 1,5%). Абсолютным лидером тут является Linux (89%), вторую позицию занимает Unix (5%).
Однако данные Top500 все же не отражают полностью положение дел в сфере HPC и реальные позиции (и перспективы) Microsoft. Следуя обычной своей стратегии, Редмонд делает ставку на использование своих средств на массовом рынке и расширение применения технологий HPC в коммерческих организациях (сегодня основными потребителями HPC являются научные структуры и университеты). Продвижением HPC-cредств занимается подразделение Technical Computing, группа которого работает в российском офисе. В сентябре Microsoft выпустила новую версию решения — Windows HPC Server 2008 R2. Ее представление в нашей стране прошло в московском технологическом центре компании в начале ноября с участием приехавшего из Редмонда директора Microsoft Technical Computing Кирилла Фаенова.
Он четко обозначил цель концепции HPC: предоставить мощность суперкомпьютеров широкой категории ученых, инженеров и аналитиков. Представив мировое научно-техническое сообщество численностью примерно в 70 млн. человек в виде пирамиды, он показал, что сегодня верхний слой ее (1 млн.) потребляет около 80% мощностей HPC, а остальные 20% доступны еще для 14 млн. специалистов. Задача обеспечить доступность HPC-средств для, как минимум, 55 млн. ученых и инженеров может быть решена в видимой перспективе.
Прогресс в этом направлении был показан на примере стоимости расчета генома человека: в 2004 г. она составляла 3 млрд. долл., сейчас снизалась до 34 тыс. долл. и, по прогнозам экспертов, в 2014-м может опуститься до отметки 100 долл. При этом важно, что снижение стоимости идет не только за счет уменьшения цены производства оборудования (микроэлектроники), а в первую очередь за счет использования новых архитектурных подходов (например, сочетания традиционных и графических микропроцессоров) и перехода к применению стандартных, массовых средств. В результате темпы снижения стоимости вычислений и их доступность на рынке в последние годы повышаются драматическим образом (см. таблицу).
В целом идея HPC Server достаточно проста: сервер (управляющий узел) распределяет выполнение расчетного задания по имеющимся в его распоряжении ресурсам, причем это могут быть кластеры не только серверов, но и рабочих станций. Более того, в новой версии HPC Server можно обращаться таким же образом к облачным мощностям сервисной платформы Azure, применяя в полной мере модель использования и оплаты ресурсов по их фактическому использованию (см. рисунок).
По данным западных исследований, в среднем в мире около 5% серверов применяется для решения HPC-задач. Эксперты Microsoft считают, что в нашей стране эта доля заметно меньше, но она все же растет и подтягивается к мировым показателям. “В России мы продвигаем HPC уже три года, продукт хорошо продавался в академические институты и университеты. Сейчас, не забывая про науку и образование, мы намерены существенно расширить это направление за счет коммерческого сегмента — так охарактеризовал российскую ситуацию менеджер по продуктам HPC российского представительства Microsoft Василий Маланин. — В нашей стране сейчас хорошо обстоит дело в машиностроении — здесь потребность уже осознается, мы работаем с представителями производителей специализированного ПО для того, чтобы продвигать именно кластерные версии их софта (Ansys, Flowvision и т. д.). Сложнее с финансовыми институтами, отрасли хорошо развитой на Западе. Банки уже осознают потребность, сейчас мы ведем разговоры с несколькими из них. Страховые компании пока еще в начале пути к HPC. Очень перспективным является обработка цифрового контента, там есть проекты, есть понимание куда двигаться. Что касается конкуренции с решениями на базе Linux, то она фактически ощущается только в академическом сегменте, так как там большая история использования этой ОС. Но тем не менее к нашей платформе в этой среде относятся с большим интересом. Коммерческий же сегмент изначально больше склонен к Windows HPC Server”.
Кирилл Фаенов привел данные независимых исследований, которые говорят о том, что производительность HPC-систем на базе Windows и Linux находится примерно на одном уровне, при этом стоимость владения Windows HPC Server в течение пяти лет на 32—51% ниже, чем аналогичных Linux-решений. В качестве достоинств продуктов для широкого круга пользователей он назвал в том числе использование хорошо знакомой им среды Windows и минимизацию усилий по развертыванию и эксплуатации системы, за счет реализации модели “все от одного поставщика”.
Однако для применения HPC необходимы приложения, которые могут исполняться в параллельных потоках. Их пока явно недостаточно, но ситуация тут быстро меняется. До сих пор подобные работы по распараллеливанию ПО выполнялись лишь для специализированных прикладных систем. Microsoft намерена решительно переломить эту ситуацию, расширив спектр распараллеленного ПО, сотрудничая при этом с ведущими разработчиками микропроцессорных систем Intel и Nvidia.
Компания, в частности, уже давно совершенствует внутреннюю реализацию Excel — самого популярного в мире “вычислительного” приложения, широко используемого и при обработке данных аналитиками биржевого рынка в реальном времени. Тестовые испытания показывают, что применение служб поддержки высокопроизводительных вычислений в Windows HPC Server 2008 R2 для электронных таблиц Excel 2010 сокращает время сложных вычислений электронных таблиц на несколько порядков. Например, для рабочей книги с 1700 записями время вычислений удалось снизить с 14 ч до менее чем 3 мин.
Но, что еще важнее, к созданию параллельных приложений в последние годы подключились многие независимые разработчики. Тут нужно отметить, что создание эффективных SaaS-решений требует реализации многоарендной (multitenancy) архитектуры, при которой масштабирование обеспечивается именно благодаря возможности распараллеливания вычислительных процессов. Средства разработки для этого наиболее активно продвигала на рынок корпорация Intel. Такие средства давно имелись и в Visual Studio, но в последнее версии 2010 этого пакета они получили мощное развитие, в частности, в виде дополнительной поддержки параллельных вычислений на уровне языков программирования и .NET Framework.
По данным Microsoft, в настоящее время с Windows HPC Server 2008 R2 работают уже сотни приложений, выполняющих высокопроизводительные вычисления, причем за последние два года их количество увеличилось в 16 раз. На данный момент о поддержке платформы Windows HPC Server объявили 40 партнеров (как разработчики ПО, так и поставщики оборудования), в том числе 17 компаний, работающих в России.
Возможность ускорения решения задач за счет распараллеливания вычислительных процессов была продемонстрирована руководителем инженерного департамента компании CADFEM-CIS Александром Черновым на примере расчетов реальной модели оборудования большой размерности, выполненных в ОКБ “Гидропресс” (госкорпорация “Росатом”). На базовом компьютере (двухъядерный процессор Intel Core 2 CPU 6600 2,4 ГГц с 8 Гб ОЗУ) данная задача решалась около 23 ч. При использовании кластера CRAY CX1 (пять серверов, 60 ядер, процессоры Intel Xeon 6C X5670 2,93 ГГц 12M 6,4 Гб/сек, 240 Гб ОЗУ), работающего под управлением Microsoft HPC Server 2008, для получения результата потребовалось 45 мин. При этом докладчик отдельно отметил то, что с помощью Microsoft HPC Cluster Manager удалось организовать удобный механизм удаленного управления процессом параллельных вычислений.
1991 г. | 1998 г. | 2005 г. | |
---|---|---|---|
Пример систем | Cray Y-MP C916 | Sun HPC10000 | Сервера x64 |
Производительность | 10 Гфлопс | 10 Гфлопс | 10 Гфлопс |
Стоимость | 40 млн. долл. | 1 млн. долл. | 4 тыс. долл. |
Снижение стоимости за 7 лет | - | в 40 раз | в 250 раз |
Круг пользователей | Правительственные лаборатории | Большие корпорации | Каждый ученый и инженер |