- Overview of Microsoft HPC Pack 2019
- Windows 2008 HPC R2— возвращение к расчетным задачам
- Кирилл Фаенов: “Цель нашей стратегии Technical computing — предоставить широкому кругу пользователей возможность использовать технологии высокопроизводительных вычислений на настольных компьютерах, серверах и в облаке”
- Структурная схема распределенных параллельных вычислений с помощью Windows HPC Server 2008 R2
- HPC-решение от Microsoft
- Windows HPC Server 2008, знакомство и первый кластер.
Overview of Microsoft HPC Pack 2019
Learn how to evaluate, set up, deploy, maintain, and submit jobs to a high-performance computing (HPC) cluster that is created by using Microsoft HPC Pack 2019. HPC Pack allows you to create and manage HPC clusters consisting of dedicated on-premises Windows or Linux compute nodes, part-time servers, workstation computers, and dedicated or on-demand compute resources that are deployed in Microsoft Azure.
Based on where the compute resources are located, Microsoft HPC Pack can be categorized into three cluster Modes:
Cluster Mode | Highlights | Topology |
---|---|---|
HPC Pack On-premises Get started with HPC Pack On-premises | — Supports Windows and Linux compute nodes — Advanced job scheduling and resource management — Proved and scale-tested capabilities — Free of charge — Easy to extend to hybrid | |
HPC Pack Hybrid Get started with HPC Pack Hybrid | — Burst to cloud to handle peaks in demand or special projects — Automate the deployment of Windows and Linux Azure VMs — Use your current HPC scheduler or HPC Pack — Pay only for what you use | |
HPC Pack IaaS Get started with HPC Pack IaaS | — Deploy a cluster all in the cloud, on demand — Use your current scheduler or HPC Pack — Readily shift existing applications to the cloud — Use templates, scripts, and gallery images to deploy on demand |
Microsoft also has cloud-born HPC Scheduler Service called Azure Batch. You can either use Azure Batch directly or you can use HPC Pack as your scheduler and have your job to burst to azure batch.
Follow below links to start with your HPC Pack:
Windows 2008 HPC R2— возвращение к расчетным задачам
Кирилл Фаенов: “Цель нашей стратегии Technical computing — предоставить широкому кругу пользователей возможность использовать технологии высокопроизводительных вычислений на настольных компьютерах, серверах и в облаке”
Структурная схема распределенных параллельных вычислений с помощью Windows HPC Server 2008 R2
Как известно, первые компьютеры (в их современном понимании) появились в середине прошлого века в связи с необходимостью выполнения сложных математических расчетов. Потом сфера применения этих устройств стала быстро расширяться за счет того, что возможности собственно вычислений (обработки информации) были дополнены еще тремя ключевыми функциями — хранение огромных массивов информации (и управление ими), интерактивное взаимодействие с людьми и удаленные коммуникации.
Тем не менее можно довольно уверенно утверждать, что в моменту перестройки в СССР в конце 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 удалось организовать удобный механизм удаленного управления процессом параллельных вычислений.
Windows HPC Server 2008, знакомство и первый кластер.
Первым пробным камнем в сфере High Performance Computing корпорации Microsoft была разработка Windows Compute Cluster Server (Windows Server 2003). Прошло какое-то время, которое показало, что Microsoft может буквально без всякой предварительной подготовки войти на рынок кластерных систем и занять на нем какое-то место.
Однако функциональности WCCS было мало, мало также и тех, кто интересовался этим, и в Microsoft сделали ОС для кластерных систем на базе последней своей разработки – Server 2008. Так появился HPC (High Performance Computing) Server 2008.
Немного теории о кластерных технологиях. Выжимка, необходимая для понимания сути различий между кластерами в стандартном нынешнем их понимании и суперкомпьютерном:
“Кластер — это разновидность параллельной или распределённой системы, которая:
1. состоит из нескольких связанных между собой компьютеров;
2. используется как единый, унифицированный компьютерный ресурс».
“
Необходимо добавить, что суперкомпьютерный кластер предназначен для вычислений, а не для NLB или failover.
Немного теории о Windows HPC Server 2008
Минимальные требования для Windows HPC Server 2008, как рекомендуют Microsoft, следующие:
Recommended: 2 GHz or faster
Recommended: 2 GB or more
Available disk space:
Recommended: 80 GB or more
Network adapters: >1 в большинстве случаев. Количество сетевых адаптеров зависит от топологии сети, которую вы выберите на этапе установки HPC Pack.
Различия между Windows Server 2008 и HPC Server 2008
HPC Server = Windows Server Standard, за исключением:
– HPC Server поставляется только в 64-битной версии;
– На HPC Server необходимо установить HPC Pack, пакет, содержащий в себе утилиты для обеспечения работы кластера: Cluster Manager, HPC Runtime etc.
(HPC Server)-related products
1) HPC Server – содержит в себе ОС + HPC Pack;
2) HPC Server OS – содержит в себе ОС;
3) HPC Pack – пакет, содержащий в себе утилиты для обеспечения работы кластера. Необходимо, чтобы HPC Pack был установлен на всех узлах, включая управляющий и клиентские компьютеры, с которых планируется использовать кластер;
4) HPC SDK – хидеры и библиотеки для HPC-разработки, распространяется свободно. Необходим для компиляции программ с MS-MPI.
Ограничения HPC Server 2008
– отключены IIS, Sharepoint, Exchange, MSSQL (за счёт особенностей лицензирования данных продуктов под HPC),
– основные ограничения накладываются на софт, который так или иначе использует вышеперечисленные сервисы. Так, если вы захотите запустить сервисы IIS, MSSQL или Exchange, вы получите ошибку. Например, TS Gateway и FTP не заработают в связи с зависимостью от IIS.
Однако, если необходим доступ к полной функциональности Windows Server Standard/Enterprise, можно приобрести лицензию и доставить HPC Pack.
Первым делом необходимо определиться с компьютером, который будет иметь роль управляющего узла. Из своего опыта: если у вас гомогенная аппаратная среда, берите любой из узлов. Если же нет – исходите из того, что еще будет установлено на данном сервере (в идеале он должен быть управляющим и только им).
Забрать дистрибутив можно по ссылке. Установка HPC Server 2008 ничем не отличается от установки Windows Server 2008.
Следующим шагом определяем, как мы будем формировать наш кластер. Существует три метода добавления узлов в кластер:
– bare metal, в этом случае всё необходимое, включая ОС, устанавливается на узел в момент добавления в кластер;
– настроенные узлы с установленной вручную ОС;
– узлы из XML-файла. В XML-файле содержатся записи об узлах, при этом неважно, как планируется их вводить в кластер – bare metal или preconfigured.
Мы будем использовать настроенные узлы.
Будем придерживаться следующего плана:
1) Планирование инфраструктуры;
2) Настройка «железа»;
3) Настройка управляющего узла;
4) Настройка узлов-вычислителей;
5) Ввод узлов в кластер;
Первая задача – необходимо поднять домен для нашего кластера. Воспользуемся dcpromo со всеми настройками по умолчанию. Без Active Directory кластер работать не будет – HPC-утилиты используют доменные credentials для аутентификации и всё довольно органично завязано друг на друге. После этого устанавливаем и настраиваем DHCP-сервер. В данном посте DHCP мы использовать не будем, но он пригодится для дальнейших изысканий.
Конфигурация: 192.168.0.1 для домен-контроллера, 192.168.0.2 и 3 для узлов.
В случае наличия лишнего NIC на управляющем узле пользуемся следующим сценарием:
1) Подключаем один NIC к Enterprise Network. Второй NIC, нужный для Private Network, пока не трогаем;
2) Открываем Network and Sharing Center;
3) Переименовываем подключенный NIC в Enterprise;
4) Переименовываем второй NIC в Private;
В случае отсутствия лишнего NIC нам необходимо создать loopback-заглушку для «обмана» HPC Pack.
1) Открываем Device Manager;
2) Нажимаем Add legacy hardware;
3) Next. Нажимаем Install the hardware that i manually select from a list;
4) Выбираем Network adapters. Next;
5) Выбираем Microsoft, в правом окошке выбираем Microsoft Loopback Adapter;
6) Выполняем шаги 3-4 из первой последовательности действий.
Настройка управляющего узла
1) Монтируем HPC Pack Express ISO и запускаем установщик. На управляющем узле необходимо выбрать вариант установки HPC Pack 2008 R2 Express.
2) Выбираем Create a new HPC cluster by creating a Head Node.
В зависимости от ресурсов установка может занимать до 10 минут и более. В процессе кроме собственного instance SQL Server будут установлены роли DHCP, WDS, File Services и Network Policy and Access Services.
HPC Manager предлагает удобно структурированный To-Do список действий для настройки кластера.
1) Configure your network.
На этом этапе необходим краткий ликбез.
Enterprise network – публичная сеть организации, в которой происходит основная работа пользователей
Private network – выделенная внутренняя сеть, по которой между узлами ходят пакеты (management, deployment, application traffic), связанные с кластерными коммуникациями.
Application network – выделенная сеть с высокой пропускной способностью и низкими задержками. Обычно используется для Message Passing Interface-коммуникаций между узлами. Ключевые слова для поиска: InfiniBand, Infinihost, ConnectX, NetworkDirect.
HPC Pack предлагает нам пять сетевых топологий, отличающихся методом соединения узлов между собой и соединения узлов и Enterprise-сети:
Topology 1: Compute Nodes Isolated on a Private Network
На мой взгляд, самая адекватно отвечающая всем требованиям безопасности и эффективности топологии. Именно её мы и будем использовать и именно для неё мы подключали/создавали второй NIC. В данной топологии только управляющий узел «смотрит» в Enterprise-сеть, узлы изолированы в Private-сеть.
Topology 2: All Nodes on Enterprise and Private Networks
Все узлы, включая управляющий, имеют второй NIC, который «смотрит» в Enterprise. Не вижу причин использовать данную топологию в Production.
Topology 3: Compute Nodes Isolated on Private and Application Networks
Узлы изолированы в приватной и application-сети. В таком случае необходимо иметь три NIC на управляющем узле, один из которых должен (но не обязан) быть от Mellanox и иже с ними.
Topology 4: All Nodes on Enterprise, Private, and Application Networks
Все узлы доступны во всех сетях.
Topology 5: All Nodes on an Enterprise Network
Все узлы находятся в Enterprise.
Мой опыт сообщает, что публиковать узлы в Enterprise есть только одна причина – если у нас есть что-то типа менеджера Matlab, который в случае своей работы должен иметь connectivity со всеми узлами.
Можно привести следующие рекомендации:
– не позволяйте APIPA адресам внедриться в конфигурацию вашего Enterprise адаптера на управляющем узле – в обязательном порядке должен быть динамический/статический IP-адрес;
– если вы выбрали топологию, в которой имеет место быть приватная сеть и собираетесь развертывать узлы из состояния bare metal, то убедитесь, что в сети нет PXE-серверов;
– отключите все DHCP-сервера в приватной и application сетях за исключением сервиса на управляющем узле
– если так получилось, что в вашем домене развернута политика IPSec Enforcement, вы можете столкнуться с определенными проблемами во время развертывания. Рекомендации приводятся разные, но самой адекватной считаю сделать управляющий узел IPsec boundary-сервером, чтобы узлы могли соединяться с ним во время загрузки PXE.
2) Как Enterprise Network Adapter выбираем тот NIC, который мы переименовывали в «Enterprise»;
3) Как Private Network Adapter Selection выбираем оставшийся NIC;
4) В Private Network Configuration ничего не меняем, next;
5) В настройке Firewall Setup можем поменять конфигурацию Firewall, но я бы порекомендовал оставить все настройки на этой вкладке по умолчанию;
Если после непродолжительной настройки в отчете нет ненужных покраснений, переходим к следующему пункту в To-Do.
7) Provide installation credentials. В данной настройке вам необходимо указать учетные данные аккаунта, имеющего права на ввод машин в домен. Естественно, строка должна быть вида DOMAIN\User. Данная настройка также необходима для развертывания узлов из состояния Bare Metal.
8) В следующем пункте To-Do, Configure the naming of new nodes, с помощью нехитрого синтаксиса указываем политику наименования узлов кластера. Поменяем %1000% на %1%. Необходимо помнить, что данная настройка имеет место только для развертываний узлов из состояния Bare Metal.
9) Create a node template;
10) На вкладке Node Template Type из четырех вариантов выбираем первый, Compute node template, то есть шаблон узла, который будет использоваться для узлов-вычислителей;
11) Оставим имя шаблона по умолчанию;
12) На вкладке Select Deployment Type выберем Without operating system. Поскольку мы используем в данном посте уже сконфигурированные узлы, нам нет нужды создавать шаблон с ОС внутри;
13) Указываем, необходимо ли включать в шаблон какие-либо апдейты.
Итак, с управляющим узлом мы пока закончили.
Настройка узлов-вычислителей и ввод узлов в кластер
1) Включаем узел в домен; именуем его согласно нашим конвенциям, например, winnode1;
2) Логинимся на узел под доменным аккаунтом и монтируем ISO Microsoft HPC Pack 2008 R2 Express;
3) В Select Installation Edition выбираем HPC Pack 2008 R2 Express. В Enterprise-версии есть дополнительные функции;
4) Все остальные настройки те же самые, за исключением Join an existing HPC Cluster by creating a new compute node. В Join Cluster в выпадающем меню должно быть имя управляющего узла.
Вот и всё. Давайте переключимся в HPC Manager на управляющем узле и увидим, что во вкладке Nodes Management появился наш узел.
Узел имеет Node State указанным в Unknown и Node Health как Unapproved.
Чтобы решить эту проблему, выделим узел и нажмем Assign node template, выбрав наш шаблон, который мы создали ранее. Для наблюдения за процессом так называемого provisioning выберем узел и нажмем Provisioning Log.
После окончания узел должен стать Offline и его Node Health OK. Выделим его и нажмем Bring Online. По поводу данного состояния – в случае Online узел может принимать участие в вычислениях, в Offline – нет. Можно использовать в вычислениях и управляющий узел, но не рекомендую.