Panoramica delle macchine virtuali serie HB

Attenzione

Questo articolo fa riferimento a CentOS, una distribuzione Linux prossima allo stato EOL (End of Life, fine del ciclo di vita). Prendere in considerazione l'uso e il piano di conseguenza. Per altre informazioni, vedere le linee guida per la fine della vita di CentOS.

Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali Windows ✔️ set di scalabilità flessibili ✔️ set di scalabilità uniformi

Ottimizzare le prestazioni dell'applicazione HPC (High Performance Compute) in AMD EPYC richiede un approccio ponderato alla localizzazione della memoria e al posizionamento dei processi. Di seguito viene illustrata l'architettura AMD EPYC e la relativa implementazione in Azure per le applicazioni HPC. Si userà il termine "pNUMA" per fare riferimento a un dominio NUMA fisico e a "vNUMA" per fare riferimento a un dominio NUMA virtualizzato.

Fisicamente, un server serie HB è 2 * 32 core EPYC 7551 CPU per un totale di 64 core fisici. Questi 64 core sono suddivisi in 16 domini pNUMA (8 per socket), ognuno dei quali è quattro core e noto come "COMPLESSO CPU" (o "CCX"). Ogni CCX ha una propria cache L3, ovvero il modo in cui un sistema operativo visualizzerà un limite pNUMA/vNUMA. Una coppia di condivisioni CCXs adiacenti accede a due canali di DRAM fisici (32 GB di DRAM nei server serie HB).

Per consentire all'hypervisor di Azure di funzionare senza interferire con la macchina virtuale, si riserva il dominio pNUMA fisico 0 (il primo CCX). Verranno quindi assegnati domini pNUMA 1-15 (unità CCX rimanenti) per la macchina virtuale. La macchina virtuale vedrà:

(15 vNUMA domains) * (4 cores/vNUMA) = 60 core per macchina virtuale

La macchina virtuale stessa non sa che pNUMA 0 non è stato assegnato. La macchina virtuale riconosce pNUMA 1-15 come vNUMA 0-14, con 7 vNUMA in vSocket 0 e 8 vNUMA in vSocket 1. Anche se questo è asimmetrico, il sistema operativo dovrebbe avviarsi e funzionare normalmente. Più avanti in questa guida viene illustrato come eseguire le applicazioni MPI in questo layout NUMA asimmetrico.

L'aggiunta del processo funzionerà nelle macchine virtuali serie HB perché si espone il processore sottostante così come è alla macchina virtuale guest. È consigliabile aggiungere processi per ottenere prestazioni e coerenza ottimali.

Il diagramma seguente illustra la separazione dei core riservati per Hypervisor di Azure e la macchina virtuale serie HB.

Separazione dei core riservati per hypervisor di Azure e vm serie HB

Specifiche hardware

Specifiche hardware VM serie HB
Core 60 (SMT disabilitato)
CPU AMD EPYC 7551
Frequenza CPU (non AVX) ~2,55 GHz (singolo + tutti i core)
Memoria 4 GB/core (totale 240 GB)
Disco locale SSD da 700 GB
Infiniband 100 Gb EDR Mellanox Connessione X-5
Rete 50 Gb Ethernet (utilizzabile da 40 GB) SmartNIC di seconda generazione di Azure

Specifiche software

Specifiche software VM serie HB
Dimensioni massime processo MPI 18000 core (300 macchine virtuali in un singolo set di scalabilità di macchine virtuali con singlePlacementGroup=true)
Supporto MPI HPC-X, Intel MPI, OpenMPI, MVAPICH2, MPICH, Platform MPI
Framework aggiuntivi UCX, libfabric, PGAS
supporto Archiviazione di Azure Dischi Standard e Premium (massimo 4 dischi)
Supporto del sistema operativo per SRIOV RDMA CentOS/RHEL 7.6+, Ubuntu 18.04+, SLES 15.4, WinServer 2016+
Supporto di Orchestrator CycleCloud, Batch, servizio Azure Kubernetes; Opzioni di configurazione del cluster

Importante

Questo documento fa riferimento a una versione di Rilascio di Linux vicina o alla fine della vita (EOL). Prendere in considerazione l'aggiornamento a una versione più recente.

Passaggi successivi

  • Altre informazioni sull'architettura AMD EPYC e sulle architetture multi-chip. Per informazioni più dettagliate, vedere la Guida all'ottimizzazione HPC per processori AMD EPYC.
  • Per informazioni sugli annunci più recenti, sugli esempi di carico di lavoro HPC e sui risultati delle prestazioni, vedere i blog della community tecnica di calcolo di Azure.
  • Per un quadro generale sull'architettura per l'esecuzione di carichi di lavoro HPC, vedere HPC (High Performance Computing) in Azure.