Alıştırma - HPC SKU'su için doğru NUMA eşlemesini bulma

Tamamlandı

Ar-Ge ekibinizin sıkı bir şekilde bağlanmış HPC uygulamalarından biri performans için karma paralelleştirme (MPI+iş parçacıkları) kullanır. Ekip, HB120_v2 bu uygulama için en iyi SKU olduğunu belirledi ve ekibin süreci ve iş parçacıklarını sabitlemek için en uygun yeri belirlemesi gerekiyor.

Aşağıdaki alıştırmada, AR-GE ekibinizin HB120_v2 NUMA topolojisini belirlemek için kullandığı yordamı izler ve hangi CPU kimliklerinin hangi NUMA etki alanlarına karşılık geldiğini keşfedersiniz.

Not

Bu alıştırma isteğe bağlıdır. Bu alıştırmayı tamamlamak istiyorsanız başlamadan önce bir Azure aboneliği oluşturmanız gerekir. Azure hesabınız yoksa veya şu anda bir hesap oluşturmak istemiyorsanız, sunulan bilgileri anlamak için yönergeleri okuyabilirsiniz.

  1. Azure CLI'nın yüklü olduğu bir komut istemi açın.

  2. Azure hesabınızda oturum açın. Bu adım, kaynakları dağıtma izniniz olmasını sağlar.

    az login
    
  3. Kaynak grubu oluşturun. HB120_v2 VM'sini bu kaynak grubuna dağıtırsınız. RESOURCE-GROUP_NAME öğesini seçtiğiniz benzersiz bir adla değiştirin ve LOCATION değerini size yakın bir konumla (örneğin eastus) değiştirin.

    az group create \
       --name <RESOURCE-GROUP_NAME> \
       --location <LOCATION>
    
  4. Azure Market CentOS-HPC 7.8 görüntüsünü kullanan bir HB120_v2 VM oluşturun. RESOURCE-GROUP_NAME değerini son adımda oluşturduğunuz kaynak grubuyla değiştirin ve VM-NAME değerini seçtiğiniz benzersiz bir adla değiştirin.

    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
    

    Bu komutun tamamlanması biraz zaman alabilir. VM'niz oluşturulduğunda, JSON çıkışının bir parçası olacak olan VM'nin publicIpAddress değerini not alın. Sonraki adımda bu IP adresini kullanacaksınız.

  5. Otomatik olarak oluşturulan ssh anahtarlarını kullanarak HB120_v2 VM'nizde oturum açın.

    ssh azureuser@<VM-PUBLIC-IP-ADDRESS>
    
  6. lstopo-no-graphics uygulamasını yükleyin (hwloc rpm'den).

    sudo yum install -y hwloc
    
  7. NUMA topolojisini belirlemek için lstopo-no-graphics komutunu çalıştırın.

    lstopo-no-graphics 2>&1 | tee lstopo-no-graphics.out
    
  8. Çekirdek kimlikleri ve üye oldukları NUMA etki alanı düğümlerini not alın.

HB120v2 çekirdek kimliklerinin 30 NUMA etki alanına eşlemeleri şunlardı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 ve 116-119.

Bu NUMA eşleme bilgileriyle artık işlemleri ve iş parçacıklarını nereye sabitleyebileceğinizi biliyorsunuz. Her işlem kendi NUMA etki alanına eşlenmelidir. Yalnızca MPI işlemleri için NUMA etki alanı başına bir, iki, üç veya dört işlem çalıştırmayı deneyin. Hangi eşlemenin en iyi performansı verdiğini görün (örneğin, daha düşük bir duvar saati süresi). Karma paralel uygulamalar için işlemi ve iş parçacıklarını aynı NUMA etki alanında gruplandırın. Sonraki MPI birimi, işlemleri NUMA etki alanlarına sabitlemek için kullanılacak MPI komut satırı bağımsız değişkenlerini gösterir.