Introduzione
I workload di computing ad alte prestazioni (HPC) e ad alto accoppiamento utilizzano spesso la Message Passing Interface (MPI) per comunicare tra i processi e le istanze di macchine virtuali (VM). Tuttavia, la creazione di un'immagine VM ottimizzata per le prestazioni ottimali di MPI richiede competenze di sistema, conoscenza di Google Cloud e tempo extra per la manutenzione. Per creare rapidamente istanze VM per i tuoi workload HPC, puoi utilizzare l'immagine VM HPC. In alternativa, puoi creare VM mediante la serie di macchine H3.
L'immagine VM HPC è un'immagine VM basata su CentOS 7.9 o Rocky Linux 8 ottimizzata per i workload HPC ad alto accoppiamento. Include i parametri di ottimizzazione del kernel e della rete preconfigurati necessari per creare istanze VM che raggiungono prestazioni MPI ottimali su Google Cloud.
Puoi creare una VM pronta per l'HPC utilizzando le seguenti opzioni:
- Google Cloud CLI
- ConsoleGoogle Cloud . Nella console, l'immagine è disponibile tramite Cloud Marketplace.
- Il gestore dei workload Slurm di SchedMD, che utilizza l'immagine VM HPC per impostazione predefinita
- CloudyCluster di Omnibond, che utilizza l'immagine VM HPC per impostazione predefinita
Vantaggi
L'immagine VM HPC offre i seguenti vantaggi:
- VM per l'HPC pronte all'uso. Per i workload HPC ad alto accoppiamento, non è necessario ottimizzare manualmente le prestazioni, gestire i riavvii delle VM o rimanere al passo con gli ultimi aggiornamenti diGoogle Cloud .
- Ottimizzazioni di rete per workload ad alto accoppiamento. Sono incluse ottimizzazioni che riducono la latenza per i messaggi di piccole dimensioni, a vantaggio delle applicazioni che dipendono fortemente dalle comunicazioni collettive e point-to-point.
- Ottimizzazioni per il calcolo per workload HPC. Sono incluse ottimizzazioni che riducono il tremolio del sistema, il che rende più prevedibili le prestazioni elevate del singolo nodo.
- Prestazioni coerenti e riproducibili. La standardizzazione delle immagini VM ti offre prestazioni a livello di applicazione coerenti e riproducibili.
- Maggiore compatibilità delle applicazioni. L'allineamento ai requisiti a livello di nodo della specifica della piattaforma HPC di Intel consente un elevato grado di interoperabilità tra i sistemi.
Funzionalità
Disabilita gli aggiornamenti automatici
Gli aggiornamenti automatici possono avere un impatto negativo sulle performance delle applicazioni
HPC. Durante la creazione di una VM,
gli aggiornamenti automatici possono essere disattivati quando si utilizzano le immagini VM HPC
impostando la voce dei metadati google_disable_automatic_updates
su TRUE
. La modalità di impostazione dei metadati durante la creazione della VM dipende dallo strumento
utilizzato per creare la VM.
Ad esempio, quando utilizzi il comando
gcloud compute instances create
per creare
una VM, fornisci l'argomento
--metadata
. Per ulteriori informazioni, vedi le informazioni sui metadati delle VM.
Ottimizzazioni collettive di Intel MPI
L'immagine VM HPC include le ottimizzazioni collettive di Intel MPI eseguite su
istanze c2-standard-60
e c2d-standard-112
utilizzando le policy di posizionamento compatto.
RPM preinstallati
L'immagine VM HPC è dotata dei seguenti pacchetti RPM preinstallati:
daos-client
gcc-gfortran
gcc-toolset-12
Lmod
dkms
htop
hwloc
hwloc-devel
infiniband-diags
kernel-devel
kmod-idpf-irdma
libfabric
librdmacm-utils
libibverbs-utils
libXt
ltrace
nfs-utils
numactl
numactl-devel
papi
pciutils
pdsh
perf
perftest
rdma-core
redhat-lsb-core
redhat-lsb-cxx
rsh
screen
strace
wget
zsh
- Gruppo di pacchetti "Strumenti di sviluppo"
Guide rapide
Prima di iniziare
- Per utilizzare Google Cloud CLI per questa guida rapida, devi prima installare e inizializzare questo strumento di interfaccia:
- Nella console Google Cloud , nella pagina di selezione del progetto, seleziona o crea un progettoGoogle Cloud .
Crea un'istanza VM HPC
Crea la VM
Ti consigliamo vivamente di scegliere un tipo di macchina ottimizzato per il calcolo, ad esempio C2, C2D o H3. Queste VM hanno una mappatura dei core da virtuali a fisici fissa ed espongono l'architettura delle celle NUMA al sistema operativo guest, entrambi elementi fondamentali per le prestazioni delle applicazioni HPC ad alto accoppiamento.
Console
Nella console Google Cloud , vai alla pagina Cloud Marketplace delle VM HCP. Vai alla pagina Cloud Marketplace delle VM HPC
Fai clic su Lancia.
Nella pagina di deployment della VM HPC, inserisci il nome del deployment. Questo nome diventerà la radice del nome della VM. Quando assegni il nome all'istanza, Compute Engine aggiunge
-vm
a questo nome.Seleziona una zona e un tipo di macchina. Per questa guida rapida, puoi lasciare tutte le impostazioni invariate o modificarle. Ti consigliamo vivamente di scegliere un tipo di macchina ottimizzato per il calcolo, ad esempio C2, C2D o H3.
Non modificare le impostazioni predefinite per il tipo di disco di avvio, la dimensione del disco di avvio e l'interfaccia di rete.
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
policy di posizionamento compatto
per ottenere una bassa latenza di rete. Se hai bisogno di più VM di quante possano essere inserite
in una singola policy di posizionamento compatto, suddividile in più
policy di posizionamento. Ti consigliamo di utilizzare il numero minimo
di policy di posizionamento che possono adattarsi 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
: il nome della VM HPC da creareZONE
: la zona in cui creare la VMIMAGE_FAMILY
: la famiglia di immagini dell'immagine con cui creare le istanze VM. Utilizzahpc-centos-7
per un'immagine basata su CentOS ohpc-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 per visualizzarne lo stato, esegui il seguente comando:
gcloud compute instances describe VM_NAME
Accedi alla VM
Console
Dopo aver creato l'istanza VM HPC, questa si avvia automaticamente. Per accedervi segui questi passaggi:
Nella console Google Cloud , vai alla pagina Istanze VM.
Fai clic sul nome dell'istanza.
Nella sezione Accesso remoto, fai clic sul primo elenco a discesa e scegli come accedere all'istanza.
Compute Engine propaga le tue chiavi SSH e crea il tuo utente. Per saperne di più, vedi Connessione alle VM Linux.
gcloud
Dopo aver creato l'istanza VM HPC, questa si avvia automaticamente. Per accedervi
tramite SSH, utilizza il comando compute ssh
:
gcloud compute ssh VM_NAME
Compute Engine propaga le tue chiavi SSH e crea il tuo utente. Per saperne di più, vedi Connessione alle istanze.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse impiegate in questa guida rapida, elimina l'istanza VM HPC che hai creato.
Console
Nella console Google Cloud vai alla pagina Deployment.
Seleziona la casella di controllo accanto al deployment della VM HPC.
Fai clic su Elimina.
gcloud
Utilizza il comando instances delete
:
gcloud compute instances delete VM_NAME
Crea VM HPC con policy di posizionamento compatto
Puoi ridurre la latenza tra le VM creando una policy di posizionamento compatto. Una policy di posizionamento compatto garantisce che le VM nella stessa zona di disponibilità siano poste vicine tra loro.
Per creare VM HPC che specificano una policy di posizionamento compatto, segui questi passaggi:
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 le seguenti best practice.
Disabilita il multi-threading simultaneo
Per impostazione predefinita, l'immagine VM HPC abilita il multi-threading simultaneo (SMT), noto anche come Hyper-Threading sui processori Intel. La disattivazione dell'SMT può rendere le performance più prevedibili e ridurre i tempi di esecuzione dei job.
Per disattivare SMT, puoi utilizzare i seguenti metodi:
Per disattivare 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 disattivare SMT su una VM HPC esistente, connettiti alla VM ed esegui da lì questo comando:
sudo google_mpi_tuning --nosmt
Per ulteriori informazioni, vedi Imposta il numero di thread per core.
Utilizza gVNIC come interfaccia di rete virtuale
L'immagine VM HPC supporta sia Virtio-net sia Google Virtual NIC (gVNIC) come interfacce di rete virtuali. L'utilizzo di gVNIC anziché Virtio-net può migliorare la scalabilità delle applicazioni MPI offrendo prestazioni di comunicazione migliori e un throughput più elevato. Inoltre, gVNIC è un prerequisito per il networking avanzato, che offre una maggiore larghezza di banda e consente un throughput più elevato.
Quando crei una nuova VM, Virtio-net viene utilizzato come interfaccia di rete virtuale
per impostazione predefinita. 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,
vedi Utilizzare Google Virtual NIC.
Disattiva le mitigazioni di Meltdown e Spectre
L'immagine VM HPC attiva le mitigazioni di Meltdown e Spectre per impostazione predefinita. In alcuni casi, queste mitigazioni potrebbero comportare un peggioramento delle prestazioni specifiche per il workload. Per disattivare queste mitigazioni ed evitare di incorrere in rischi per la sicurezza a queste associati, segui questi passaggi:
Esegui il comando seguente nella VM HPC:
sudo google_mpi_tuning --nomitigation
Riavvia la VM.
Migliorare le prestazioni di rete
Per migliorare le prestazioni di rete della VM, imposta una o più delle seguenti configurazioni:
Configura una larghezza di banda più elevata. 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 ulteriori informazioni, consulta Creazione di una VM con una configurazione a elevata larghezza di banda.Utilizza i frame jumbo. Per ridurre al minimo l'overhead di elaborazione per i pacchetti di rete, consigliamo di utilizzare una dimensione del pacchetto più grande. Per le specifiche della tua applicazione, devi configurare dimensioni di pacchetti più grandi. Per informazioni sull' utilizzo dei frame jumbo e delle dimensioni dei pacchetti, consulta la guida all'unità massima di trasmissione.
Aumenta i limiti di memoria TCP. Una larghezza di banda più elevata richiede una memoria TCP più grande. Segui i passaggi per aumentare le impostazioni di
tcp_*mem
.Utilizza il profilo di latenza di rete. Valuta la latenza della tua applicazione e attiva il polling occupato che riduce la latenza nel percorso di ricezione della rete. Modifica le impostazioni
net.core.busy_poll
enet.core.busy_read
in/etc/sysctl.conf
oppure utilizzatuned-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 di comunicazione. Questi parametri sono particolarmente importanti per la comunicazione collettiva MPI, che consente di specificare algoritmi e parametri di configurazione in grado di avere prestazioni molto diverse nell'ambiente Google Cloud .
L'immagine VM HPC include un'utilità, Google-hpc-compute
, per installare comodamente
le librerie MPI consigliate e utilizzare fornitori libfabric Google Cloud personalizzati
tramite il trasporto TCP.
Utilizza l'utilità google-hpc-compute
per il supporto di IntelMPI 2021
Lo script google_install_intelmpi
è lo strumento correlato a MPI
nell'utilità Google-hpc-compute
. Semplifica l'installazione e la configurazione di IntelMPI.
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, durante la creazione dell'istanza VM includi quanto segue:
--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 posizione predefinita per install_dir
è impostata su /opt/intel
.
Intel MPI 2018 nell'immagine HPC CentOS 7
Il supporto di 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 altri casi d'uso 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 precedenti. 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
Crea un'immagine personalizzata utilizzando il disco di avvio dell'immagine VM HPC come disco di origine. Puoi farlo tramite la consoleGoogle Cloud o Google Cloud CLI.
Console
Nella console Google Cloud vai alla pagina Immagini.
Fai clic su Crea immagine.
Specifica un nome per l'immagine.
In Disco di origine, seleziona il nome del disco di avvio sulla VM HPC.
Seleziona le altre proprietà rimanenti per l'immagine.
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
: il nome dell'immagine personalizzataVM_NAME
: il nome della VM HPCINSTANCE_ZONE
: la zona in cui si trova la VM HPCIMAGE_FAMILY
: facoltativo. La famiglia di immagini a cui appartiene questa immagine.LOCATION
: facoltativo. La regione in cui archiviare l'immagine personalizzata. La località predefinita è la multi-regione 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, potresti dover sostenere dei costi relativi alle risorse di Compute Engine, come le vCPU C2 e la memoria. Per saperne di più, consulta la pagina relativa ai 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 conveniente.
Passaggi successivi
- Scopri di più sul computing ad alte prestazioni su Google Cloud.
- Scopri di più sulla serie di macchine H3.
- Scopri come utilizzare l'API per le istanze in blocco.
- Se hai un feedback o hai bisogno di assistenza, invia un'email all'indirizzo hpc-image-feedback@google.com.