Creazione di un'istanza VM compatibile con HPC

Introduzione

I carichi di lavoro per il computing ad alte prestazioni (HPC) a stretto accoppiamento spesso utilizzano l'interfaccia MPI (Message Passing Interface) per comunicare tra processi e istanze di macchine virtuali (VM). Tuttavia, creare un'immagine VM personalizzata per prestazioni MPI ottimali richiede competenza nei sistemi, conoscenza di Google Cloud e tempo aggiuntivo per la manutenzione. Per creare rapidamente istanze VM per i carichi di lavoro HPC, puoi utilizzare l'immagine VM HPC. In alternativa, puoi creare VM utilizzando la serie di macchine H3.

L'immagine VM HPC è un'immagine VM basata su CentOS 7.9 o Rocky Linux 8 ottimizzata per carichi di lavoro HPC ad alto accoppiamento. Include parametri preconfigurati del kernel e dell'ottimizzazione della rete necessari per creare istanze VM che ottengono prestazioni MPI ottimali su Google Cloud.

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

Vantaggi

L'immagine VM HPC offre i seguenti vantaggi:

  1. VM pronte all'uso per l'HPC (computing ad alte prestazioni). Non è necessario ottimizzare manualmente le prestazioni, gestire i riavvii delle VM o rimanere al passo con gli ultimi aggiornamenti di Google Cloud per i carichi di lavoro HPC ad alto accoppiamento.
  2. Ottimizzazioni di rete per carichi di lavoro strettamente associati. Sono incluse le ottimizzazioni che riducono la latenza per i messaggi di piccole dimensioni, a vantaggio delle applicazioni che dipendono molto da comunicazioni collettive e point-to-point.
  3. Ottimizzazioni del calcolo per i carichi di lavoro HPC. Sono incluse le ottimizzazioni che riducono il tremolio del sistema, il che rende più prevedibili le alte prestazioni a nodo singolo.
  4. Prestazioni coerenti e riproducibili. La standardizzazione delle immagini VM offre prestazioni coerenti e riproducibili a livello di applicazione.
  5. Migliore compatibilità delle applicazioni. L'allineamento con i requisiti a livello di nodo della specifica della piattaforma Intel HPC consente un elevato grado di interoperabilità tra i sistemi.

Funzionalità

Ottimizzazioni collettive Intel MPI

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

RPM preinstallati

L'immagine VM HPC viene fornita con i seguenti pacchetti RPM preinstallati:

  • 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
  • Gruppo di pacchetti "Strumenti di sviluppo"

Guide rapide

Prima di iniziare

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

crea un'istanza VM HPC

crea la VM

Ti consigliamo vivamente di scegliere un tipo di macchina ottimizzata per il calcolo, ad esempio C2, C2D o H3. Queste VM hanno una mappatura fissa tra core virtuali e fisici ed espongono l'architettura cellulare NUMA al sistema operativo guest, entrambe fondamentali per le prestazioni delle applicazioni HPC ad alto accoppiamento.

Console

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

  2. Fai clic su Launch .

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

  4. Scegli una zona e un tipo di macchina. Per questa guida rapida, puoi lasciare invariate tutte le impostazioni o modificarle. Ti consigliamo vivamente di scegliere un tipo di macchina ottimizzata per il calcolo, ad esempio C2, C2D o H3.

  5. Lascia le impostazioni predefinite in Tipo di disco di avvio, Dimensioni disco di avvio e Interfaccia di rete.

  6. Fai clic su Esegui il deployment.

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

gcloud

Crea una VM HPC utilizzando il comando instances create. Ti consigliamo vivamente di creare VM HPC utilizzando i criteri di posizionamento compatti per ottenere una bassa latenza di rete. Se hai bisogno di più VM di quante ne possano essere inserite in un unico criterio di posizionamento compatto, suddividi le VM in più criteri di posizionamento. Consigliamo di utilizzare il numero minimo di criteri di posizionamento adatti alle 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 creare la VM.
  • IMAGE_FAMILY: la famiglia di immagini dell'immagine con cui creare istanze VM. Utilizza 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 viene completata. Per verificare la VM e verificarne lo stato, esegui questo comando:

gcloud compute instances describe VM_NAME

Accedi alla VM

Console

Dopo aver creato un'istanza VM HPC, viene avviata automaticamente. Per accedervi, procedi nel seguente modo:

  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 come accedere all'istanza.

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

gcloud

Dopo aver creato un'istanza VM HPC, viene avviata automaticamente. Per accedervi utilizzando 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 Connessione alle istanze.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate 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 della VM HPC.

  3. Fai clic su Elimina.

gcloud

Utilizza il comando instances delete:

gcloud compute instances delete VM_NAME

Creazione di VM HPC con criteri di posizionamento compatti

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à siano vicine tra loro.

Per creare VM HPC che specificano un criterio di posizionamento compatto, segui questi passaggi:

  1. Crea un criterio di posizionamento compatto.

  2. Esegui una di queste operazioni:

Configura la tua VM HPC in base alle best practice

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

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. La disattivazione di SMT può rendere le tue prestazioni più prevedibili e può ridurre i tempi dei job.

Per disattivare la SMT, puoi utilizzare i seguenti metodi:

  • Per disabilitare SMT durante la creazione di una nuova VM HPC, segui i passaggi per creare 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 saperne di più, vedi Impostare il numero di thread per core.

Utilizza gVNIC come interfaccia di rete virtuale

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

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

Disattiva le mitigazioni di fusione e Spectre

L'immagine VM HPC abilita le mitigazioni Meltdown e Spectre per impostazione predefinita. In alcuni casi, queste mitigazioni potrebbero comportare un degrado delle prestazioni specifico per i carichi di lavoro. Per disabilitare queste mitigazioni e sostenere i rischi per la sicurezza associati, segui questi passaggi:

  1. Esegui questo comando sulla VM HPC:

    sudo google_mpi_tuning --nomitigation
    
  2. Riavvia la VM.

Migliora le prestazioni della rete

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

  • Configura una larghezza di banda maggiore. Per configurare le prestazioni di rete Tier_1 per VM, utilizza il comando gcloud compute instances create per creare la VM e specifica il flag --network-performance-configs. Per saperne di più, consulta Creazione di una VM con configurazione di larghezza di banda elevata.

  • Utilizza cornici jumbo. Per ridurre al minimo l'overhead di elaborazione dei pacchetti di rete, consigliamo di utilizzare dimensioni maggiori. Devi convalidare dimensioni di pacchetti più grandi per le specifiche della tua applicazione. Per informazioni sull'utilizzo di frame jumbo e dimensioni dei pacchetti, consulta la guida relativa al numero massimo di unità di trasmissione.

  • Aumentare i limiti di memoria TCP. Una larghezza di banda maggiore richiede una memoria TCP maggiore. Segui i passaggi per aumentare le impostazioni di tcp_*mem.

  • Utilizza il profilo di latenza di rete. Valuta la latenza dell'applicazione e abilita il polling "occupato" che riduce la latenza nel percorso di ricezione della rete. Modifica le impostazioni net.core.busy_poll e net.core.busy_read in /etc/sysctl.conf oppure utilizza tuned-adm.

Utilizza Intel MPI 2021

Google consiglia di utilizzare la libreria Intel MPI 2021 per l'esecuzione di job MPI su Google Cloud.

Le implementazioni MPI hanno molti parametri di configurazione interni che possono influire sulle prestazioni della comunicazione. Questi parametri sono particolarmente pertinenti per la comunicazione MPI Collective, che consente di specificare algoritmi e parametri di configurazione che possono funzionare in modo molto diverso nell'ambiente Google Cloud.

L'immagine VM HPC include un'utilità, Google-hpc-compute, per installare comodamente le librerie MPI consigliate e utilizzare provider libfabric personalizzati di Google Cloud sul trasporto TCP.

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

Lo script google_install_intelmpi è lo strumento correlato a MPI nell'utilità Google-hpc-compute. Aiuta a 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 creare una VM HPC e includi quanto segue durante la creazione dell'istanza VM:

--metadata=google_install_intelmpi="--impi_2021"

Per installare la libreria su una VM HPC esistente, esegui questo comando sulla 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 nell'immagine HPC CentOS 7

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

Per casi d'uso aggiuntivi relativi a Intel MPI 2018, ad esempio l'esecuzione di applicazioni MPI create con Intel Parallel Studio XE, utilizza il runtime Intel Parallel Studio XE (PSXE) completo sostituendo intel_mpi con intel_psxe_runtime nei comandi riportati sopra. Il runtime PSXE include diverse librerie importanti per l'esecuzione di applicazioni MPI, come la Intel Math Kernel Library (MKL).

Crea un'immagine personalizzata utilizzando l'immagine VM HPC

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

  2. Personalizza la VM con le ottimizzazioni MPI.

  3. Crea un'immagine personalizzata utilizzando il disco di avvio dell'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 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.
  • IMAGE_FAMILY: facoltativo. La famiglia di immagini a cui appartiene questa immagine.
  • LOCATION: facoltativo. Regione in cui archiviare l'immagine personalizzata. La località predefinita è la località multiregionale più vicina alla località del disco di origine.

Prezzi

L'immagine VM HPC è disponibile senza costi aggiuntivi. Poiché l'immagine VM HPC viene eseguita su Compute Engine, potrebbero esserti addebitati costi per le risorse Compute Engine come vCPU e memoria C2. Per saperne di più, consulta Prezzi di Compute Engine.

Limitazioni

I vantaggi dell'ottimizzazione variano da un'applicazione all'altra. In alcuni casi, una determinata ottimizzazione potrebbe avere un effetto negativo sulle prestazioni. Valuta la possibilità di eseguire il benchmarking delle tue applicazioni per trovare la configurazione più efficiente o economica.

Passaggi successivi