Настройка кластера Windows RDMA с пакетом HPC для запуска приложений MPI

Это важно

1 марта 2023 г. мы прекратим поддержку классических виртуальных машин.

Если вы используете ресурсы IaaS из ASM, выполните миграцию к 1 марта 2023 г. Рекомендуем осуществить этот переход как можно раньше, чтобы воспользоваться различными улучшенными функциями в Azure Resource Manager.

Дополнительные сведения см. в статье Перенесите свои ресурсы IaaS в Azure Resource Manager до 1 марта 2023 г.

Настройте кластер Windows RDMA в Azure с помощью пакета MICROSOFT HPC и размеров виртуальных машин с поддержкой RDMA для запуска параллельных приложений интерфейса передачи сообщений (MPI). При настройке узлов с поддержкой RDMA в кластере HPC на основе Windows Server приложения MPI эффективно взаимодействуют по сети Azure с низкой задержкой и высокой пропускной способностью, основанной на технологии удаленного прямого доступа к памяти (RDMA).

Варианты развертывания кластера пакета HPC

Пакет MICROSOFT HPC — это средство, предоставляемое без дополнительных затрат для создания кластеров HPC в локальной среде или в Azure для запуска приложений WINDOWS или Linux HPC. Пакет HPC включает среду выполнения для реализации Microsoft интерфейса передачи сообщений для Windows (MS-MPI). При использовании с экземплярами с поддержкой RDMA под управлением поддерживаемой операционной системы Windows Server пакет HPC обеспечивает эффективный способ запуска приложений Windows MPI, которые обращаются к сети RDMA Azure.

В этой статье приведены два сценария и ссылки на подробные рекомендации по настройке кластера Windows RDMA с пакетом Microsoft HPC 2012 R2.

  • Сценарий 1. Развертывание экземпляров рабочей роли с интенсивным вычислением (PaaS)
  • Сценарий 2. Развертывание вычислительных узлов на виртуальных машинах с интенсивным вычислением (IaaS)

Сценарий 1. Развертывание экземпляров рабочей роли с интенсивным вычислением (PaaS)

В существующем кластере пакета HPC добавьте дополнительные вычислительные ресурсы в экземпляры рабочей роли Azure (узлы Azure), работающие в облачной службе (PaaS). Эта функция также называется "всплеском в Azure" из пакета HPC, поддерживает диапазон размеров для экземпляров рабочей роли. При добавлении узлов Azure укажите один из размеров, поддерживающих RDMA.

Ниже приведены рекомендации и шаги по переходу к экземплярам Azure с поддержкой RDMA из существующего (обычно локального) кластера. Используйте аналогичные процедуры, чтобы добавить экземпляры рабочей роли в головной узел пакета HPC, развернутый на виртуальной машине Azure.

Замечание

Руководство по подключению к Azure с помощью пакета HPC см. в статье "Настройка гибридного кластера с помощью пакета HPC". Обратите внимание на рекомендации, описанные в следующих шагах, которые применяются специально к узлам Azure с поддержкой RDMA.

Рывок в Azure

Этапы

  1. Развертывание и настройка головного узла ПАКЕТА HPC 2012 R2

    Скачайте пакет установки пакета HPC из Центра загрузки Майкрософт. Требования и инструкции для подготовки к развертыванию Azure Burst см. в статье "Burst на рабочие экземпляры Azure" с помощью пакета Microsoft HPC.

  2. Настройка сертификата управления в подписке Azure

    Настройте сертификат для защиты подключения между головном узлом и Azure. Параметры и процедуры см. в сценариях настройки сертификата управления Azure для пакета HPC. Для тестовых развертываний пакет HPC устанавливает сертификат управления Microsoft HPC Azure по умолчанию, который можно быстро отправить в подписку Azure.

  3. Создание облачной службы и учетной записи хранения

    Используйте портал Azure для создания облачной службы (классической) и учетной записи хранения (классической) для развертывания. Создайте эти ресурсы в регионе, где доступен размер H-series, A8 или A9, который вы хотите использовать. См. продукты Azure по регионам.

  4. Создание шаблона узла Azure

    Используйте мастер создания шаблонов узлов в диспетчере кластеров HPC. Инструкции см. в статье "Создание шаблона узла Azure в разделе "Действия по развертыванию узлов Azure с помощью пакета Microsoft HPC".

    Для первоначальных тестов мы рекомендуем настроить политику доступности вручную в шаблоне.

  5. Добавление узлов в кластер

    Используйте мастер добавления узлов в диспетчере кластеров HPC. Дополнительные сведения см. в разделе "Добавление узлов Azure" в кластер Windows HPC.

    При указании размера узлов выберите один из размеров экземпляра, поддерживающего RDMA.

    Замечание

    В каждом пакетном режиме развертывания на Azure с вычислительно интенсивными экземплярами HPC Pack автоматически развертывает как минимум два экземпляра с поддержкой RDMA (например, A8) в качестве прокси-узлов, в дополнение к указанным экземплярам рабочей роли Azure. Прокси-узлы используют ядра, выделенные для подписки, и плата взимается за них вместе с экземплярами рабочей роли Azure.

  6. Запустите (подготовьте) узлы и перенесите их в режим "в сети" для запуска заданий

    Выберите узлы и используйте действие "Пуск " в диспетчере кластеров HPC. После завершения подготовки выберите узлы и используйте команду Запуск в сети в диспетчере кластеров HPC. Узлы готовы к выполнению заданий.

  7. Отправка заданий в кластер

    Используйте средства отправки заданий пакета HPC для запуска заданий кластера. См. пакет Microsoft HPC: управление заданиями.

  8. Остановка (отмена предоставления) узлов

    Завершив выполнение заданий, переведите узлы в автономный режим и используйте действие Stop в менеджере кластеров HPC.

Сценарий 2. Развертывание вычислительных узлов на виртуальных машинах с интенсивным вычислением (IaaS)

В этом сценарии вы развертываете головной узел пакета HPC и вычислительные узлы кластера на виртуальных машинах в виртуальной сети Azure. Пакет HPC предоставляет несколько вариантов развертывания на виртуальных машинах Azure, включая сценарии автоматического развертывания и шаблоны быстрого запуска Azure. Например, приведенные ниже рекомендации и инструкции по использованию сценария развертывания пакета HPC IaaS для автоматизации развертывания кластера HPC Pack 2012 R2 в Azure.

Кластер на виртуальных машинах Azure

Этапы

  1. Создание головного узла кластера и виртуальных машин вычислительных узлов с помощью скрипта развертывания IaaS пакета HPC на клиентском компьютере

    Скачайте пакет скрипта развертывания IaaS пакета HPC из Центра загрузки Майкрософт.

    Чтобы подготовить клиентский компьютер, создайте файл конфигурации скрипта и запустите скрипт, см. статью "Создание кластера HPC с помощью сценария развертывания пакета IaaS пакета HPC".

    Рекомендации по развертыванию вычислительных узлов с поддержкой RDMA см. в статье о размерах виртуальных машин с высокой производительностью и обратите внимание на следующее:

    • Виртуальная сеть: укажите новую виртуальную сеть в регионе, где доступен размер серии H, A8 или A9, который вы хотите использовать. См. продукты Azure по регионам.

    • Операционная система Windows Server: для поддержки подключения RDMA укажите совместимую операционную систему Windows Server, например Windows Server 2012 R2 для виртуальных машин вычислительного узла.

    • Облачные службы. Так как сценарий использует классическую модель развертывания, виртуальные машины кластера развертываются с помощью облачных служб Azure (ServiceName параметры в файле конфигурации). Рекомендуется развернуть головной узел в одной облачной службе и вычислительные узлы в другой облачной службе.

    • Размер головного узла: для этого сценария рассмотрим размер по крайней мере A4 (экстра большой) для головного узла.

    • Расширение HpcVmDrivers: сценарий развертывания устанавливает агент виртуальной машины Azure и расширение HpcVmDrivers автоматически при развертывании вычислительных узлов размера A8 или A9 с операционной системой Windows Server. HpcVmDrivers устанавливает драйверы на виртуальных машинах вычислительных узлов, чтобы они могли подключаться к сети RDMA. На виртуальных машинах серии H с поддержкой RDMA необходимо вручную установить расширение HpcVmDrivers. См. статью о размерах виртуальных машин с высокой производительностью.

    • Конфигурация сети кластера: скрипт развертывания автоматически настраивает кластер пакета HPC в топологии 5 (все узлы в корпоративной сети). Эта топология необходима для всех развертываний кластеров пакетов HPC на виртуальных машинах. Не изменяйте топологию сети кластера позже.

  2. Перенос вычислительных узлов в режим "в сети" для выполнения заданий

    Выберите узлы и используйте действие "Перенос в Интернет " в диспетчере кластеров HPC. Узлы готовы к выполнению заданий.

  3. Отправка заданий в кластер

    Подключитесь к головному узлу для отправки заданий или настройте локальный компьютер для этого. Дополнительные сведения см. в разделе "Отправка заданий в кластер HPC" в Azure.

  4. Переключите узлы в оффлайн режим и остановите их (освобождая ресурсы)

    Завершив выполнение заданий, переведите узлы в режим офлайн в менеджере кластеров HPC. Затем используйте средства управления Azure, чтобы завершить их работу.

Запуск приложений MPI в кластере

Пример. Запуск mpipingpong в кластере пакетов HPC

Чтобы проверить развертывание пакета HPC экземпляров с поддержкой RDMA, выполните в кластере команду пакета HPC mpipingpong. mpipingpong отправляет пакеты данных между парными узлами многократно для вычисления задержки и измерения пропускной способности и статистики для сети приложений с поддержкой RDMA. В этом примере показан типичный шаблон выполнения задания MPI (в данном случае mpipingpong) с помощью команды mpiexec кластера.

В этом примере предполагается, что узлы Azure добавлены в конфигурацию "всплеска в Azure" ([Сценарий 1](#scenario-1.-deploy-compute-intensive-worker-role-instances-(PaaS) в этой статье. Если вы развернули пакет HPC в кластере виртуальных машин Azure, необходимо изменить синтаксис команды, чтобы указать другую группу узлов и задать дополнительные переменные среды для перенаправления сетевого трафика в сеть RDMA.

Чтобы запустить mpipingpong в кластере, выполните следующие действия:

  1. На головном узле или на правильно настроенном клиентском компьютере откройте командную строку.

  2. Чтобы оценить задержку между парами узлов в развертывании на основе Azure с четырьмя узлами, выполните следующую команду, чтобы отправить задание на выполнение mpipingpong с небольшим размером пакета и многочисленными итерациями:

    job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 1:100000 -op -s nul
    

    Команда возвращает идентификатор отправленного задания.

    Если вы развернули кластер пакетов HPC, развернутый на виртуальных машинах Azure, укажите группу узлов, содержащую виртуальные машины вычислительных узлов, развернутые в одной облачной службе, и измените команду mpiexec следующим образом:

    job submit /nodegroup:vmcomputenodes /numnodes:4 mpiexec -c 1 -affinity -env MSMPI_DISABLE_SOCK 1 -env MSMPI_PRECONNECT all -env MPICH_NETMASK 172.16.0.0/255.255.0.0 mpipingpong -p 1:100000 -op -s nul
    
  3. Когда задание завершится, чтобы просмотреть выходные данные (в данном случае выходные данные задачи 1 задания), введите следующее.

    task view <JobID>.1
    

    Where <JobID> — это идентификатор отправленного задания.

    Выходные данные включают результаты задержки, аналогичные приведенным ниже.

    Задержка пинг-понг

  4. Чтобы оценить пропускную способность между парами всплесковых узлов Azure, введите следующую команду для отправки задания на выполнение mpipingpong с большим размером пакета и небольшим числом итераций.

    job submit /nodegroup:azurenodes /numnodes:4 mpiexec -c 1 -affinity mpipingpong -p 4000000:1000 -op -s nul
    

    Команда возвращает идентификатор отправленного задания.

    В кластере пакета HPC, развернутом на виртуальных машинах Azure, измените команду, как указано на шаге 2.

  5. Когда задание завершится, чтобы просмотреть выходные данные (в данном случае выходные данные задачи 1 задания), введите следующее:

    task view <JobID>.1
    

    Выходные данные включают результаты пропускной способности, аналогичные приведенным ниже.

    Пропускная способность пинг-понга

Вопросы, которые следует учитывать при работе с приложениями MPI

Ниже приведены рекомендации по запуску приложений MPI с пакетом HPC в Azure. Некоторые применяются только к развертываниям узлов Azure (экземпляры рабочей роли, добавленные в конфигурацию "всплеск в Azure").

  • Экземпляры рабочих ролей в облачной службе периодически переподготавливаются без уведомления со стороны Azure (например, для обслуживания системы или в случае отказа экземпляра). Если экземпляр перепроектирован во время выполнения задания MPI, экземпляр теряет свои данные и возвращается в состояние при первом развертывании, что может привести к сбою задания MPI. Чем больше узлов вы используете для одного задания MPI, и чем дольше выполняется задание, тем более вероятно, что один из экземпляров будет переподготовлен во время выполнения задания. Кроме того, учитывайте это, если вы назначите один узел в развертывании в качестве файлового сервера.

  • Для запуска заданий MPI в Azure не требуется использовать экземпляры, поддерживаемые RDMA. Вы можете использовать любой размер экземпляра, поддерживаемый пакетом HPC. Однако экземпляры с поддержкой RDMA рекомендуются для выполнения относительно крупномасштабных заданий MPI, чувствительных к задержке и пропускной способности сети, подключающей узлы. При использовании других размеров для выполнения заданий MPI с учетом задержки и пропускной способности рекомендуется выполнять небольшие задания, в которых одна задача выполняется только на нескольких узлах.

  • Приложения, развернутые в экземплярах Azure, подчиняются условиям лицензирования, связанным с приложением. Проконсультируйтесь с поставщиками всех коммерческих приложений насчет лицензирования или иных ограничений на запуск приложений в облаке. Не все поставщики предлагают лицензирование с оплатой по мере использования.

  • Экземпляры Azure нуждаются в дополнительной настройке для доступа к узлам локальной сети, общим папкам и серверам лицензий. Например, чтобы разрешить узлам Azure доступ к локальному серверу лицензирования, можно настроить виртуальную сеть Azure типа "сеть — сеть".

  • Чтобы запустить приложения MPI на экземплярах Azure, зарегистрируйте каждое приложение MPI в брандмауэре Windows, выполнив команду hpcfwutil. Это позволяет осуществлять обмен данными MPI на порте, который динамически назначается брандмауэром.

    Замечание

    Для burst-развертывания в Azure можно также настроить команду исключения брандмауэра для автоматического запуска на всех новых узлах Azure, добавленных в кластер. После выполнения команды hpcfwutil и убедитесь, что приложение работает, добавьте команду в скрипт запуска для узлов Azure. Дополнительные сведения см. в статье "Использование скрипта запуска для узлов Azure".

  • Пакет HPC использует переменную среды кластера CCP_MPI_NETMASK для указания диапазона допустимых адресов для обмена данными MPI. Начиная с пакета HPC 2012 R2 переменная среды кластера CCP_MPI_NETMASK влияет только на взаимодействие MPI между вычислительными узлами, присоединенными к домену (локальными или на виртуальных машинах Azure). Переменная игнорируется узлами, добавленными в конфигурацию Azure одномоментно.

  • Задания MPI не могут выполняться между экземплярами Azure, развернутыми в разных облачных службах (например, в развертывании Azure с различными шаблонами узлов или вычислительными узлами Azure, развернутыми в нескольких облачных службах). Если у вас несколько развертываний узлов Azure, запущенных с различными шаблонами узлов, задание MPI должно выполняться только на одном наборе узлов Azure.

  • При добавлении узлов Azure в кластер и их подключении к сети служба планировщика заданий HPC немедленно пытается запустить задания на узлах. Если только часть рабочей нагрузки может выполняться в Azure, убедитесь, что вы обновляете или создаете шаблоны заданий, чтобы определить, какие типы заданий могут выполняться в Azure. Например, чтобы убедиться, что задания, отправленные с помощью шаблона задания, выполняются только на узлах Azure, добавьте свойство "Группы узлов" в шаблон задания и выберите AzureNodes в качестве требуемого значения. Чтобы создать пользовательские группы для узлов Azure, используйте командлет Add-HpcGroup HPC PowerShell.

Дальнейшие шаги