Упражнение. Поиск правильного сопоставления NUMA для номера SKU HPC
Одно из тесно связанных приложений HPC команды исследований и разработок использует гибридную параллелизацию (MPI + потоки) для повышения производительности. Команда определила, что HB120_v2 является лучшим номером SKU для этого приложения, и команда должна определить оптимальное место для закрепления процесса и потоков.
В следующем упражнении описана процедура, используемая командой R&D для определения топологии NUMA HB120_v2 и обнаружения идентификаторов ЦП, соответствующих доменам NUMA.
Примечание.
Это необязательное упражнение. Если вы хотите выполнить это упражнение, перед началом работы нужно будет создать подписку Azure. Если у вас нет учетной записи Azure или вы не хотите создавать ее сейчас, можно ознакомиться с инструкциями, чтобы понять, какие сведения будут представлены.
Откройте командную строку с Azure CLI.
Войдите в свою учетную запись Azure. Этот шаг гарантирует, что у вас есть разрешение на развертывание ресурсов.
az login
Создать группу ресурсов. Вы развертываете виртуальную машину HB120_v2 в этой группе ресурсов. Замените resource-GROUP_NAME уникальным именем выбора и замените LOCATION расположением рядом с вами (например, eastus).
az group create \ --name <RESOURCE-GROUP_NAME> \ --location <LOCATION>
Создайте виртуальную машину HB120_v2, которая использует образ CentOS-HPC 7.8 из Azure Marketplace. Замените RESOURCE-GROUP_NAME на группу ресурсов, созданную на последнем шаге, и замените имя виртуальной машины уникальным именем выбранного элемента.
az vm create \ --resource-group <RESOURCE-GROUP-NAME> \ --name <VM-NAME> \ --admin-username azureuser \ --generate-ssh-keys \ --image OpenLogic:CentOS-HPC:7_8:latest \ --size Standard_HB120rs_v2
Выполнение этой команды может занять некоторое время. После создания виртуальной машины запишите значение publicIpAddress виртуальной машины, которое будет частью выходных данных JSON. Этот IP-адрес потребуется вам на следующем шаге.
Войдите на виртуальную машину HB120_v2 с помощью автоматически созданных ключей SSH.
ssh azureuser@<VM-PUBLIC-IP-ADDRESS>
Установите lstopo-no-graphics (из пакета hwloc RPM).
sudo yum install -y hwloc
Для определения топологии NUMA запустите lstopo-no-graphics.
lstopo-no-graphics 2>&1 | tee lstopo-no-graphics.out
Запишите основные идентификаторы и узлы домена NUMA, которые они являются членами.
Сопоставления идентификаторов ядра HB120v2 с 30 доменами NUMA: 0-3, 4-7, 8-11, 12-15, 16-19, 20-23, 24-27, 28-31, 32-35, 36-39, 40-43, 44-47, 48-51, 52-55, 56-59, 60-63, 64-67, 68-71, 72-75, 76-79, 80-83, 84-87, 88-91, 92-95, 96-99, 100-103, 104-107, 108-111, 112-115 и 116-119.
Благодаря этим сведениям о сопоставлении NUMA вы понимаете, где следует закреплять процессы и потоки. Каждый процесс должен быть сопоставлен с его собственным доменом NUMA. Для процессов MPI попробуйте выполнить один, два, три или четыре процесса в каждом домене NUMA. Посмотрите, при каком сопоставлении достигается лучшая производительность (например, меньшее время по часам). Для гибридных параллельных приложений группируйте процесс и его потоки в одном домене NUMA. На следующем уроке по MPI мы рассмотрим, какие аргументы командной строки MPI использовать для закрепления процессов к доменам NUMA.