Creazione di un'istanza VM compatibile con HPC

Introduzione

I carichi di lavoro di computing ad alte prestazioni (HPC) a stretto accoppiamento spesso utilizzano MPI (Passing Interface) per comunicare tra processi e macchina virtuale di Compute Engine. Ma creare un'immagine VM personalizzata per ottenere un MPI ottimale in termini di prestazioni richiede esperienza nei sistemi, conoscenza di Google Cloud e tempo aggiuntivo per la manutenzione. Per creare rapidamente istanze VM per i tuoi carichi di lavoro HPC, puoi: utilizza l'immagine VM HPC. In alternativa, puoi creare le VM utilizzando Serie di macchine H3.

L'immagine VM HPC è un'immagine VM basata su CentOS 7.9 o Rocky Linux 8 che è ottimizzato per carichi di lavoro HPC strettamente associati. Include un kernel preconfigurato e i parametri di ottimizzazione della rete necessari per creare istanze VM che con prestazioni MPI ottimali su Google Cloud.

Puoi creare una VM compatibile con l'HPC utilizzando le seguenti opzioni:

Vantaggi

L'immagine VM HPC offre i seguenti vantaggi:

  1. VM pronte per l'HPC (computing ad alte prestazioni). Non è necessario ottimizzare manualmente le prestazioni, gestire i riavvii delle VM o restare al passo con le ultime Aggiornamenti di Google Cloud per carichi di lavoro HPC strettamente associati.
  2. Ottimizzazioni di rete per carichi di lavoro strettamente associati. Ottimizzazioni che riducono la latenza per i messaggi di piccole dimensioni, il che che dipendono fortemente da sistemi point-to-point e collettivi le comunicazioni.
  3. Ottimizzazioni del calcolo per i carichi di lavoro HPC. Ottimizzazioni che riducono il sistema il jitter, che rende più elevate le prestazioni a livello di singolo nodo prevedibili.
  4. Prestazioni coerenti e riproducibili. La standardizzazione delle immagini VM coerenti e riproducibili a livello di applicazione.
  5. Compatibilità delle applicazioni migliorata. Allineamento con il livello di nodo i requisiti del Specifiche della piattaforma Intel HPC consente un elevato grado di interoperabilità tra i sistemi.

Funzionalità

Disattivare gli aggiornamenti automatici

Gli aggiornamenti automatici possono avere un impatto negativo sulle prestazioni dell'HPC (computing ad alte prestazioni) diverse applicazioni. Gli aggiornamenti automatici possono essere disabilitati quando si utilizzano le immagini VM HPC: la voce dei metadati google_disable_automatic_updates viene impostata su TRUE quando la creazione di una VM. L'impostazione dei metadati durante la creazione di una VM dipende dallo strumento che utilizzerai per creare la VM.

Ad esempio, quando utilizzi gcloud compute instances create per creare per una VM, fornisci --metadata . Per saperne di più, consulta Informazioni sui metadati della VM.

Ottimizzazioni collettive Intel MPI

L'immagine VM HPC include le ottimizzazioni collettive Intel MPI eseguite su c2-standard-60 e c2d-standard-112 utilizzando i criteri di posizionamento compatti.

RPM preinstallati

L'immagine VM HPC è preinstallata con i seguenti pacchetti RPM:

  • gcc-gfortran
  • gcc-toolset-12
  • Lmod
  • dkms
  • htop
  • hwloc
  • hwloc-devel
  • kernel-devel
  • ltrace
  • libXt
  • nfs-utils
  • numactl
  • numactl-devel
  • papi
  • pciutils
  • pdsh
  • perf
  • redhat-lsb-core
  • redhat-lsb-cxx
  • rsh
  • screen
  • strace
  • wget
  • zsh
  • "Strumenti di sviluppo" gruppo di pacchetti

Guide rapide

Prima di iniziare

  1. Per utilizzare Google Cloud CLI per questa guida rapida, devi prima installare e inizializza Google Cloud CLI:
  2. Nella pagina del selettore progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

Crea un'istanza VM HPC

crea la VM

Ti consigliamo vivamente di scegliendo un tipo di macchina ottimizzato per il calcolo, C2 C2D o H3. Queste VM hanno mappatura del core virtuale a fisico fisso ed esporre l'architettura delle celle NUMA al sistema operativo guest, entrambi fondamentali per le prestazioni applicazioni HPC accoppiate.

Console

  1. Nella console Google Cloud, vai a HPC VM Cloud Marketplace . Vai alla pagina HPC VM Cloud Marketplace

  2. Fai clic su Launch .

  3. Nella pagina Deployment VM HPC, inserisci un Nome deployment. Questo nome diventa la radice del nome della VM. Compute Engine aggiunge -vm questo nome quando assegni un nome all'istanza.

  4. Scegli una zona e Tipo di macchina: Per questa guida rapida, puoi lasciare tutte le impostazioni così come sono o modificarle. Ti consigliamo vivamente di scegliendo un tipo di macchina ottimizzato per il calcolo, C2 C2D, oppure H3.

  5. Lascia i valori Tipo di disco di avvio, Dimensioni disco di avvio e Interfaccia di rete con le impostazioni predefinite.

  6. Fai clic su Esegui il deployment.

Al termine della creazione dell'istanza VM, Cloud Deployment Manager dove potrai gestire la tua VM HPC e altri deployment.

gcloud

Crea una VM HPC utilizzando il comando instances create. Ti consigliamo vivamente di creare VM HPC utilizzando criteri di posizionamento compatto per ottenere una bassa latenza di rete. Se hai bisogno di più di VM, si inseriscono in un unico criterio di posizionamento compatto, suddividi le VM in più criteri di posizionamento. Consigliamo di utilizzare il numero minimo di posizionamenti e i criteri più adatti alle tue VM.

gcloud compute instances create VM_NAME \
        --zone=ZONE \
        --image-family=IMAGE_FAMILY \
        --image-project=cloud-hpc-image-public \
        --maintenance-policy=TERMINATE \
        --machine-type=MACHINE_TYPE

Sostituisci quanto segue:

  • VM_NAME: nome della VM HPC da creare.
  • ZONE: zona in cui per creare la VM.
  • IMAGE_FAMILY: la famiglia di immagini dell'immagine con cui creare le istanze VM. Usa hpc-centos-7 per un Immagine basata su CentOS o hpc-rocky-linux-8 per un'immagine basata su Rocky Linux 8.
  • MACHINE_TYPE: tipo di macchina per la nuova VM.

Dopo un po' di tempo, la creazione dell'istanza VM verrà completata. per verificare la VM e per controllarne lo stato, esegui questo comando:

gcloud compute instances describe VM_NAME

Accedi alla VM

Console

Dopo aver creato l'istanza VM HPC, questa viene avviata automaticamente. Per accedere segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Fai clic sul nome dell'istanza VM.

  3. Nella sezione Accesso remoto, fai clic sul primo elenco a discesa e scegli la modalità di accesso all'istanza.

Compute Engine propaga le chiavi SSH e crea l'utente. Per ulteriori informazioni consulta la sezione Connessione alle VM Linux.

gcloud

Dopo aver creato l'istanza VM HPC, questa viene avviata automaticamente. Per accedere mediante SSH, utilizza il comando compute ssh:

gcloud compute ssh VM_NAME

Compute Engine propaga le chiavi SSH e crea l'utente. Per ulteriori informazioni, consulta la sezione Connessione alle istanze.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse usata in questa guida rapida, elimina l'istanza VM HPC che hai creato.

Console

  1. Nella console Google Cloud, vai alla pagina Deployment.

    Vai a Deployment

  2. Seleziona la casella di controllo accanto al deployment delle VM HPC.

  3. Fai clic su Elimina.

gcloud

Usa il comando instances delete:

gcloud compute instances delete VM_NAME

Creazione di VM HPC con criteri di posizionamento compatto

Puoi ridurre la latenza tra le VM creando un criterio di posizionamento compatto. Un criterio di posizionamento compatto garantisce che le VM nella stessa zona di disponibilità vengano posizionate una vicino all'altra.

Per creare VM HPC che specificano un criterio di posizionamento compatto:

  1. Crea un criterio di posizionamento compatto.

  2. Esegui una di queste operazioni:

Configura la VM HPC in base alle best practice

Per ottenere prestazioni migliori e più prevedibili per la tua VM HPC, ti consigliamo di utilizzare seguendo le best practice.

Disabilita il multi-threading simultaneo

L'immagine VM HPC consente il multithreading simultaneo (SMT), noto anche come Hyper-Threading sui processori Intel, per impostazione predefinita. Disattivare l'SMT può rendere il tuo rendimento più prevedibile di riduzione dei tempi di job.

Per disabilitare SMT, puoi utilizzare i seguenti metodi:

  • Per disabilitare SMT durante la creazione di una nuova VM HPC, segui i passaggi per crea una VM HPC e includi il flag --threads-per-core=1.

  • Per disabilitare SMT su una VM HPC esistente, connettiti alla VM ed esegui questo comando dalla VM:

    sudo google_mpi_tuning --nosmt
    

Per maggiori informazioni, vedi Impostare il numero di thread per core.

Utilizza gVNIC come interfaccia della rete virtuale

L'immagine VM HPC supporta sia Virtio-net che Google Virtual NIC (gVNIC) come interfacce di rete virtuale. L'uso di gVNIC al posto di Virtio-net può migliorare scalabilità delle applicazioni MPI offrendo una migliore comunicazione e una velocità effettiva superiore. Inoltre, gVNIC è un prerequisito per networking avanzato, che fornisce una larghezza di banda superiore e una velocità effettiva superiore.

Quando crei una nuova VM, Virtio-net viene utilizzato come rete virtuale dell'interfaccia per impostazione predefinita. Per utilizzare gVNIC, segui i passaggi per creare una VM HPC e includi il flag --network-interface=nic-type=GVNIC. Immagine VM HPC Includa il driver gVNIC come Dynamic Kernel Module Support (DKMS).Per ulteriori informazioni, consulta la sezione Utilizzo dei NIC virtuali di Google.

Disattivare le mitigazioni di Meltdown e Spectre

L'immagine VM HPC abilita le mitigazioni di Meltdown e Spectre per impostazione predefinita. In alcuni casi, queste mitigazioni potrebbero comportare casi specifici un peggioramento delle prestazioni. Per disabilitare queste mitigazioni e incorrere i rischi per la sicurezza associati, procedi nel seguente modo:

  1. Esegui questo comando sulla VM HPC:

    sudo google_mpi_tuning --nomitigation
    
  2. Riavvia la VM.

Migliorare le prestazioni della rete

Per migliorare le prestazioni di rete della tua VM, configura una o più delle seguenti opzioni configurazioni:

  • Configura una larghezza di banda superiore. Per configurare il networking Tier_1 per VM delle prestazioni, utilizza Comando gcloud compute instances create per creare la VM e specificare il flag --network-performance-configs. Per ulteriori informazioni, consulta la sezione Creazione di una VM con configurazione a larghezza di banda elevata.

  • Utilizza jumbo frame. per ridurre al minimo l'overhead di elaborazione per la rete di pacchetti, consigliamo di usarne una di dimensioni maggiori. Devi convalidare le dimensioni di pacchetti per le specifiche della tua applicazione. Per informazioni sui l'uso di jumbo frame e pacchetti di dimensioni, vedi Guida dell'unità massima di trasmissione.

  • Aumenta i limiti di memoria TCP. Una larghezza di banda maggiore richiede una TCP più grande la memoria. Segui la procedura per aumentare tcp_*mem impostazioni.

  • Usa il profilo di latenza di rete. Valuta la latenza della tua applicazione e abilitare il polling delle persone occupato che riduce la latenza di ricezione del tuo percorso di apprendimento. Modifica le impostazioni di net.core.busy_poll e net.core.busy_read in /etc/sysctl.conf, oppure usa tuned-adm.

Utilizza Intel MPI 2021

Google consiglia di utilizzare la libreria Intel MPI 2021 per eseguire job MPI su in Google Cloud.

Le implementazioni MPI hanno molti parametri di configurazione interni che possono influenzare le prestazioni della comunicazione. Questi parametri sono particolarmente rilevanti per la MPI Comunicazione collettiva, che consente di specificare algoritmi e configurazione che possono funzionare in modo molto diverso nell'ambiente Google Cloud.

L'immagine VM HPC include un'utilità, Google-hpc-compute, per installare le librerie MPI consigliate e utilizzare libfabric su misura di Google Cloud tramite il trasporto TCP.

Utilizza l'utilità google-hpc-compute per il supporto di IntelMPI 2021

Lo script google_install_intelmpi è lo strumento correlato alla tecnologia MPI nell'utilità Google-hpc-compute. È utile installare e configurare IntelMPI 2021/11

L'utilità Google-hpc-compute è inclusa nell'immagine VM HPC.

Installa IntelMPI 2021

Per installare la libreria IntelMPI durante la creazione di una nuova VM HPC, segui i passaggi per crea una VM HPC e includi quanto segue durante la creazione della VM istanza:

--metadata=google_install_intelmpi="--impi_2021"

Per installare la libreria su una VM HPC esistente, esegui questo comando VM:

sudo google_install_intelmpi --impi_2021 --install_dir=PATH_INSTALL_MPI

La località predefinita per install_dir è impostata su /opt/intel.

Immagine Intel MPI 2018 in HPC CentOS 7

Il supporto Intel MPI 2018 è disponibile nell'immagine HPC CentOS 7 su Google Cloud. Per ulteriori informazioni, consulta la guida dell'utente dell'utilità di google_install_mpi.

Per ulteriori casi d'uso relativi a Intel MPI 2018, come l'esecuzione di MPI sviluppate con Intel Parallel Studio XE, utilizzano Runtime Intel Parallel Studio XE (PSXE) sostituendo intel_mpi con intel_psxe_runtime nei comandi precedenti. La Il runtime PSXE include varie librerie importanti per l'esecuzione di MPI applicazioni come la Intel Math Kernel Library (MKL).

Crea un'immagine personalizzata utilizzando l'immagine VM HPC

  1. Crea una VM personalizzata che utilizza l'immagine VM HPC.

  2. Personalizzare la VM con ottimizzazioni MPI.

  3. Crea un'immagine personalizzata utilizzando il disco di avvio della tua immagine VM HPC come disco di origine. Puoi farlo utilizzando la console Google Cloud. o Google Cloud CLI.

Console

  1. Nella console Google Cloud, vai alla pagina Immagini.

    Vai a Google Immagini

  2. Fai clic su Crea immagine.

  3. Specifica un nome per l'immagine.

  4. In Disco di origine, seleziona il nome del disco di avvio sulla VM HPC.

  5. Scegli altre proprietà rimanenti per l'immagine.

  6. Fai clic su Crea.

gcloud

Crea l'immagine personalizzata utilizzando il comando images create.

gcloud compute images create IMAGE_NAME \
         --source-disk=VM_NAME \
         --source-disk-zone=VM_ZONE \
         --family=IMAGE_FAMILY \
         --storage-location=LOCATION

Sostituisci quanto segue:

  • IMAGE_NAME: nome dell'immagine personalizzata.
  • VM_NAME: nome della VM HPC.
  • INSTANCE_ZONE: zona in cui si trova la VM HPC individuarlo.
  • IMAGE_FAMILY: facoltativo. La famiglia di immagini a cui appartiene questa immagine.
  • LOCATION: facoltativo. Regione in cui archiviare personalizzata. La località predefinita è quella multiregionale più vicina a percorso del disco di origine.

Prezzi

L'immagine VM HPC è disponibile senza costi aggiuntivi. Poiché l'immagine VM HPC su Compute Engine, ti potrebbero venire addebitati dei costi a risorse di Compute Engine come vCPU e memoria C2. Per saperne di più, vedi Prezzi di Compute Engine.

Limitazioni

I vantaggi dell'ottimizzazione variano in base all'applicazione. In alcuni casi, una particolare ottimizzazione può avere un effetto negativo sulle prestazioni. Prendi in considerazione Confrontando le tue applicazioni per trovare quella più efficiente configurazione.

Passaggi successivi