Обзор виртуальных машин серии HB

Внимание

Эта статья ссылается на CentOS, дистрибутив Linux, который приближается к состоянию конца жизни (EOL). Обратите внимание на использование и план соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.

Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Универсальные масштабируемые наборы

Для обеспечения максимальной производительности приложений для высокопроизводительных вычислений (HPC) на процессорах AMD EPYC требуется продуманный подход к локализации памяти и размещению процессов. Далее рассматривается архитектура AMD EPYC и наш вариант ее реализации в Azure для приложений HPC. Для физического домена NUMA используется термин pNUMA, а для виртуального — vNUMA.

Сервер серии HB оснащен двумя 32-ядерными ЦП EPYC 7551, предлагающими в общей сложности 64 физических ядра. Эти 64 ядра разделены на 16 доменов pNUMA (8 на сокет), каждый из которых имеет по 4 ядра. AMD называет эти домены Core Complex (или CCX). Каждый CCX имеет собственный кэш L3, что позволяет операционной системе видеть границу между pNUMA и vNUMA. Пара смежных CCX предоставляет доступ к двум каналам физической памяти DRAM (32 ГБ памяти DRAM на серверах серии HB).

Чтобы работа низкоуровневой оболочки Azure не мешала работе виртуальной машины, мы резервируем физический домены pNUMA 0 (первый CCX). Затем мы присваиваем pNUMA домены 1–15 (оставшиеся единицы CCX) для виртуальной машины. Таким образом, виртуальная машина увидит:

(15 vNUMA domains) * (4 cores/vNUMA) = 60 ядер на виртуальную машину

Виртуальная машина сама по себе не знает, что pNUMA 0 ей не предоставлено. Виртуальная машина рассматривает pNUMA 0 1–15 как vNUMA 0–14, с 7 vNUMA на vSocket 0 и 8 vNUMA на vSocket 1. Хотя это и асимметрично, операционная система должна загружаться и работать нормально. Далее в этом руководстве мы расскажем, как лучше выполнять приложения MPI на этом асимметричном макете NUMA.

Виртуальные машины серии HB поддерживают закрепление процессов, так как для гостевой виртуальной машины мы предоставляем базовый чип "как есть". Мы настоятельно рекомендуем закреплять процесс для обеспечения оптимальной производительности и согласованности.

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

Разделение ядер, зарезервированное для гипервизора Azure и виртуальной машины серии HB

Характеристики оборудования

Характеристики оборудования Виртуальная машина серии HB
Ядра 60 (SMT отключено)
ЦП AMD EPYC 7551
Частота ЦП (без AVX) ~2,55 ГГц (одно ядро + все ядра)
Память 4 ГБ на ядро (всего 240 ГБ)
Локальный диск Диск SSD на 700 ГБ
Infiniband EDR Mellanox ConnectX-5 на 100 Гб
Network Ethernet 50 ГБ/с (доступно 40 ГБ/с) Azure второго поколения SmartNIC

Характеристики программного обеспечения

Характеристики программного обеспечения Виртуальная машина серии HB
Максимальный размер задания MPI 18 000 ядер (300 виртуальных машин в одном масштабируемом наборе виртуальных машин с параметром singlePlacementGroup = true)
Поддержка MPI HPC-X, Intel MPI, OpenMPI, MVAPICH2, MPICH, платформа MPI
Дополнительные платформы UCX, libfabric, PGAS
Поддержка службы хранилища Microsoft Azure Диски уровня "Стандарт" и "Премиум" (максимум 4 диска)
Поддержка ОС для SRIOV RDMA CentOS/RHEL 7.6+, Ubuntu 18.04+, SLES 15.4, WinServer 2016+
Поддержка Orchestrator CycleCloud, пакетная служба, AKS; параметры конфигурации кластера

Внимание

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

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