Используйте экземпляры с RDMA или GPU в пулах Batch

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

  • Чтобы запускать многоэкземплярные рабочие нагрузки MPI, выбирайте типоразмеры серий HB, HC, NC или ND либо другие типоразмеры с сетевым интерфейсом, поддерживающим удалённый прямой доступ к памяти (RDMA). Эти типоразмеры подключаются к сети InfiniBand для обмена данными между узлами, что может ускорить MPI-приложения.

  • Для приложений CUDA можно выбрать размеры серии N, которые включают карты графического процессора (GPU) NVIDIA Tesla.

В этой статье приведены рекомендации и примеры использования некоторых специализированных типоразмеров Azure в пулах Batch. Спецификации и общие сведения см. по следующим ссылкам:

  • размеры виртуальных машин, оптимизированных для высокопроизводительных вычислений (Linux, Windows);

  • размеры виртуальных машин с поддержкой графического процессора (GPU) (Linux, Windows).

Примечание.

Некоторые типы виртуальных машин могут быть недоступны в регионах, в которых вы создаете учетные записи Batch. Чтобы убедиться, что размер доступен, перейдите на страницу Доступность продуктов по регионам. Кроме того, см. статью, посвященную выбору размера виртуальной машины для пула пакетной службы.

Зависимости

Возможности RDMA или GPU для типоразмеров, предназначенных для ресурсоёмких вычислений, в Batch поддерживаются только в некоторых операционных системах. Поддерживаемые операционные системы для этих размеров виртуальных машин включают только часть операционных систем, доступных для создания виртуальной машины. В зависимости от того, как вы создаете пул Batch, вам может потребоваться установить или настроить на узлах дополнительные драйверы или другое программное обеспечение. В указанной ниже таблице представлены сведения об этих зависимостях. Перейдите по ссылке, чтобы просмотреть дополнительные сведения. Сведения о вариантах настройки пулов Batch см. далее в этой статье.

Пулы Linux — конфигурация виртуальной машины

Размер Возможность Операционные системы Необходимое программное обеспечение Параметры пула
H16r, H16mr
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMA Ubuntu 22.04 LTS
(Azure Marketplace)
Intel MPI 5

Драйверы RDMA Linux
Включение связи между узлами, отключение параллельного выполнения задач
NCv3, NDv2, NDv4, NDv5 серии Графический процессор NVIDIA Tesla (зависит от серии) Ubuntu 22.04 LTS
(Azure Marketplace)
Драйверы NVIDIA CUDA или драйверы CUDA Toolkit Н/П
Серии NVv3, NVv4, NVv5 Ускоренная визуализация GPU Ubuntu 22.04 LTS
(Azure Marketplace)
Драйверы NVIDIA GRID или драйверы GPU AMD Н/П

*Размеры серии N с поддержкой RDMA также включают графические процессоры NVIDIA Tesla

Внимание

Этот документ содержит ссылку на выпуск Linux, срок поддержки которого подходит к концу или уже истёк (EOL). Рассмотрите возможность обновления до более текущей версии.

Пулы Windows — конфигурация виртуальной машины

Размер Возможность Операционные системы Необходимое программное обеспечение Параметры пула
H16r, H16mr
NC24r, NC24rs_v2, NC24rs_v3, ND24rs*
RDMA Windows Server 2016, 2012 R2 или
2012 (Azure Marketplace)
Microsoft MPI 2012 R2 или более поздней версии либо
Intel MPI 5

Драйверы RDMA Windows
Включение связи между узлами, отключение параллельного выполнения задач
Серия NC, NCv2, NCv3, ND, NDv2 Графический процессор NVIDIA Tesla (зависит от серии) Windows Server 2016 или
2012 R2 (Azure Marketplace)
Драйверы NVIDIA CUDA или драйверы CUDA Toolkit Н/П
Серии NV, NVv2, NVv4 Графический процессор NVIDIA Tesla M60 Windows Server 2016 или
2012 R2 (Azure Marketplace)
Драйверы NVIDIA GRID Н/П

*Размеры серии N с поддержкой RDMA также включают графические процессоры NVIDIA Tesla

Пулы Windows — конфигурация облачных служб

Предупреждение

Не рекомендуется использовать пулы в конфигурации облачных служб. Вместо этого используйте пулы конфигурации виртуальных машин.

Размер Возможность Операционные системы Необходимое программное обеспечение Параметры пула
H16r, H16mr RDMA Windows Server 2016, 2012 R2, 2012 или
2008 R2 (семейство версий гостевой ОС)
Microsoft MPI 2012 R2 или более поздней версии либо
Intel MPI 5

Драйверы RDMA Windows
Включение связи между узлами,
отключение параллельного выполнения задач

Примечание.

Размеры серии N не поддерживаются в пулах конфигурации облачных служб.

Варианты настройки пула

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

  • Для пулов в конфигурации виртуальной машины выберите стандартный образ виртуальной машины Azure Marketplace с предустановленными драйверами и программным обеспечением. Примеры:

  • Создайте пользовательский образ виртуальной машины Windows или Linux с установленными драйверами, программным обеспечением или другими параметрами, необходимыми для размера виртуальной машины.

  • Установите драйверы GPU и RDMA с помощью расширения виртуальной машины.

  • Создайте пакет приложения из ZIP-архива с драйвером или установщиком приложения. Затем настройте службу Batch для развертывания этого пакета на узлах пула и его однократной установки при создании каждого узла. Например, если пакет приложения является установщиком, создайте командную строку задачи запуска, чтобы автоматически установить приложение на всех узлах пула. Рекомендуется использовать пакет приложения и задачу запуска пула, если рабочая нагрузка зависит от конкретной версии драйвера.

    Примечание.

    Задача запуска должна выполняться с повышенными правами (администратора), и необходимо дождаться её успешного завершения. Длительно выполняющиеся задачи увеличивают время подготовки пула Batch.

Пример: драйверы GPU NVIDIA в пуле виртуальных машин Windows NC

Чтобы запускать приложения CUDA в пуле узлов Windows NC, необходимо установить драйверы GPU NVIDIA. Ниже приведен пример процедуры с использованием пакета приложения для установки драйверов GPU NVIDIA. Вы можете выбрать этот вариант, если рабочая нагрузка зависит от конкретной версии драйвера GPU.

  1. Скачайте пакет установки для драйверов GPU в Windows Server 2016 с веб-сайта NVIDIA, например версию 411.82. Сохраните файл локально, используя короткое имя, например GPUDriverSetup.exe.
  2. Создайте ZIP-файл пакета.
  3. Загрузите пакет в учетную запись Batch. Пошаговые инструкции см. в руководстве для пакетов приложений. Укажите идентификатор приложения, например GPUDriver, и его версию, например 411.82.
  4. Используйте API пакетной службы или портал Azure для создания пула в конфигурации виртуальных машин с нужным количеством узлов и необходимым масштабом. В следующей таблице показаны примеры параметров для автоматической установки драйверов GPU NVIDIA с помощью задачи запуска.
Настройка Значение
Тип образа Marketplace (Linux/Windows)
Издатель MicrosoftWindowsServer
ПРЕДЛОЖЕНИЕ WindowsServer
SKU 2016-Datacenter
Размер узла NC6 Стандартный
Ссылки на пакет приложения GPUDriver, версия 411.82
Start task enabled (Включена задача запуска) Истина
Командная строка - cmd /c "%AZ_BATCH_APP_PACKAGE_GPUDriver#411.82%\\GPUDriverSetup.exe /s"
Учетные данные пользователя — автопользователь пула, admin
Ожидать успешного выполнения - Истина

Пример. Драйверы GPU NVIDIA в пуле виртуальных машин Linux NC

Чтобы запустить приложения CUDA в пуле узлов NC под управлением Linux, необходимо установить драйверы GPU NVIDIA Tesla из набора средств CUDA Toolkit. Следующие примеры действий по созданию и развертыванию пользовательского образа Ubuntu 22.04 LTS с драйверами GPU:

  1. Разверните виртуальную машину серии NC Azure под управлением Ubuntu 22.04 LTS. Например, создайте виртуальную машину в центрально-южной части США.
  2. Добавьте расширение драйверов GPU NVIDIA в виртуальную машину с помощью портала Azure, клиентского компьютера, подключенного к подписке Azure, или Azure Cloud Shell. Кроме того, можно выполнить соответствующие инструкции, чтобы подключить виртуальную машину и установить драйверы CUDA вручную.
  3. Выполните следующие действия, чтобы создать образ Azure Compute Gallery для Batch.
  4. Создайте учетную запись Batch в регионе, который поддерживает виртуальные машины серии NC.
  5. Используя API Batch или портал Azure, создайте пул на основе пользовательского образа с нужным количеством узлов и параметрами масштабирования. В следующей таблице приведены примеры параметров пула для данного образа:
Настройка Значение
Тип образа Пользовательский образ
Собственный образ Имя образа
Номер SKU агента узла batch.node.ubuntu 22.04
Размер узла NC6 Стандартный

Пример: Microsoft MPI в пуле виртуальных машин Windows H16r

Чтобы выполнять приложения Windows MPI в пуле узлов виртуальных машин H16r в Azure, необходимо настроить расширение HpcVmDrivers и установить Microsoft MPI. Ниже приведен пример процедуры по развертыванию пользовательского образа Windows Server 2016 с необходимыми драйверами и программным обеспечением.

  1. Выполните развертывание виртуальной машины H16r Azure под управлением Windows Server 2016. Например, создайте виртуальную машину в западной части США.
  2. Добавьте расширение HpcVmDrivers в виртуальную машину, выполнив команду Azure PowerShell на клиентском компьютере, который подключен к вашей подписке Azure, или с помощью Azure Cloud Shell.
  3. Откройте подключение к удаленному рабочему столу своей виртуальной машины.
  4. Скачайте пакет установки (MSMpiSetup.exe) с последней версией Microsoft MPI и установите Microsoft MPI.
  5. Выполните следующие действия, чтобы создать образ Azure Compute Gallery для Batch.
  6. Используйте API пакетной службы или портал Azure для создания пула с помощью Коллекции вычислений Azure с нужным числом узлов и в нужном масштабе. В следующей таблице приведены примеры параметров пула для данного образа:
Настройка Значение
Тип образа Пользовательский образ
Собственный образ Имя образа
Номер SKU агента узла batch.node.windows amd64
Размер узла H16r Standard
Включена связь между узлами Истина
Максимальное число заданий на узел 1

Следующие шаги

  • Для выполнения заданий MPI в пуле пакетной службы Azure ознакомьтесь с примерами для Windows или Linux.