Упражнение. Поиск правильного сопоставления NUMA для номера SKU HPC

Завершено

Одно из тесно связанных приложений HPC команды исследований и разработок использует гибридную параллелизацию (MPI + потоки) для повышения производительности. Команда определила, что HB120_v2 является лучшим номером SKU для этого приложения, и команда должна определить оптимальное место для закрепления процесса и потоков.

В следующем упражнении описана процедура, используемая командой R&D для определения топологии NUMA HB120_v2 и обнаружения идентификаторов ЦП, соответствующих доменам NUMA.

Примечание.

Это необязательное упражнение. Если вы хотите выполнить это упражнение, перед началом работы нужно будет создать подписку Azure. Если у вас нет учетной записи Azure или вы не хотите создавать ее сейчас, можно ознакомиться с инструкциями, чтобы понять, какие сведения будут представлены.

  1. Откройте командную строку с Azure CLI.

  2. Войдите в свою учетную запись Azure. Этот шаг гарантирует, что у вас есть разрешение на развертывание ресурсов.

    az login
    
  3. Создать группу ресурсов. Вы развертываете виртуальную машину HB120_v2 в этой группе ресурсов. Замените resource-GROUP_NAME уникальным именем выбора и замените LOCATION расположением рядом с вами (например, eastus).

    az group create \
       --name <RESOURCE-GROUP_NAME> \
       --location <LOCATION>
    
  4. Создайте виртуальную машину 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-адрес потребуется вам на следующем шаге.

  5. Войдите на виртуальную машину HB120_v2 с помощью автоматически созданных ключей SSH.

    ssh azureuser@<VM-PUBLIC-IP-ADDRESS>
    
  6. Установите lstopo-no-graphics (из пакета hwloc RPM).

    sudo yum install -y hwloc
    
  7. Для определения топологии NUMA запустите lstopo-no-graphics.

    lstopo-no-graphics 2>&1 | tee lstopo-no-graphics.out
    
  8. Запишите основные идентификаторы и узлы домена 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.