Övning – Hitta rätt NUMA-mappning för en HPC SKU

Slutförd

Ett av R&D-teamets nära kopplade HPC-program använder hybridparallellisering (MPI+trådar) för prestanda. Teamet har fastställt att HB120_v2 är den bästa SKU:n för det här programmet, och teamet måste fastställa den optimala platsen för att fästa processen och trådarna.

I följande övning följer du proceduren som ditt R&D-team använde för att fastställa HB120_v2 NUMA-topologi och identifiera vilka CPU-ID:n som motsvarar vilka NUMA-domäner.

Kommentar

Den här övningen är valfri. Om du vill slutföra den här övningen måste du skapa en Azure-prenumeration innan du börjar. Om du inte har något Azure-konto eller om du inte vill skapa ett för tillfället kan du läsa igenom anvisningarna så att du förstår den information som visas.

  1. Öppna en kommandotolk där du har Azure CLI installerat.

  2. Logga in på ditt Azure-konto. Det här steget säkerställer att du har behörighet att distribuera resurser.

    az login
    
  3. Skapa en resursgrupp. Du distribuerar den HB120_v2 virtuella datorn till den här resursgruppen. Ersätt RESOURCE-GROUP_NAME med ett unikt namn som du väljer och ersätt LOCATION med en plats nära dig (till exempel eastus).

    az group create \
       --name <RESOURCE-GROUP_NAME> \
       --location <LOCATION>
    
  4. Skapa en HB120_v2 virtuell dator som använder CentOS-HPC 7.8-avbildningen från Azure Marketplace. Ersätt RESOURCE-GROUP_NAME med resursgruppen som du skapade i det senaste steget och ersätt VM-NAME med ett unikt namn som du väljer.

    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
    

    Det kan ta lite tid innan det här kommandot slutförs. När den virtuella datorn har skapats noterar du den virtuella datorns publicIpAddress, som kommer att ingå i JSON-utdata. Du använder den här IP-adressen i nästa steg.

  5. Logga in på din HB120_v2 virtuella dator med hjälp av de ssh-nycklar som genererades automatiskt.

    ssh azureuser@<VM-PUBLIC-IP-ADDRESS>
    
  6. Installera lstopo-no-graphics (från hwloc rpm).

    sudo yum install -y hwloc
    
  7. Kör lstopo-no-graphics för att fastställa NUMA-topologin.

    lstopo-no-graphics 2>&1 | tee lstopo-no-graphics.out
    
  8. Anteckna kärn-ID:n och i vilka NUMA-domännoder de är medlemmar.

Mappningarna av HB120v2-kärn-ID:n till 30 NUMA-domäner är: 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-9 5, 96-99, 100-103, 104-107, 108-111, 112-115 och 116-119.

Med den här NUMA-mappningsinformationen vet du nu var processer och trådar ska fästas. Varje process ska mappas till sin egen NUMA-domän. För endast MPI-processer kan du prova att köra en, två, tre eller fyra processer per NUMA-domän. Se vilken mappning som ger bästa prestanda (till exempel en lägre klocktid på väggen). Gruppera processen och dess trådar i samma NUMA-domän för parallella hybridprogram. Nästa MPI-enhet visar vilka MPI-kommandoradsargument som ska användas för att fästa processer på NUMA-domäner.