Einleitung
Bei eng gekoppelten Hochleistungs-Computing-Arbeitslasten (HPC) wird oft über die Message Passing Interface (MPI) zwischen Prozessen und VM-Instanzen kommuniziert. Wenn Sie jedoch ein eigenes VM-Image erstellen, das für eine optimale MPI-Leistung optimiert ist, sind Systemkenntnisse, Google Cloud-Kenntnisse und zusätzliche Wartungsarbeiten erforderlich. Für das schnelle Erstellen von VM-Instanzen für Ihre HPC-Arbeitslasten können Sie das HPC-VM-Image verwenden. Alternativ können Sie VMs mithilfe der H3-Maschinenserie erstellen.
Das HPC-VM-Image ist ein CentOS 7.9- oder Rocky Linux 8-basiertes VM-Image, das für eng gekoppelte HPC-Arbeitslasten optimiert ist. Sie enthält vorkonfigurierte Kernel- und Netzwerkabstimmungsparameter, die zum Erstellen von VM-Instanzen erforderlich sind, mit denen eine optimale MPI-Leistung in Google Cloud erreicht wird.
Mit folgenden Optionen können Sie eine HPC-fähige VM erstellen:
- Google Cloud CLI
- Google Cloud Console. In der GCP Console ist das Image über Cloud Marketplace verfügbar.
- Slurm-Arbeitslastmanager von SchedMD (verwendet standardmäßig das HPC-VM-Image).
- Omnibond CloudyCluster (verwendet standardmäßig das HPC-VM-Image).
Vorteile
Das HPC-VM-Image bietet folgende Vorteile:
- Für HPC sofort einsatzbereite VMs. Sie müssen die Leistung nicht manuell abstimmen, keine VM-Neustarts verwalten oder mit den neuesten Google Cloud-Updates für eng gekoppelte HPC-Arbeitslasten auf dem Laufenden bleiben.
- Netzwerkoptimierungen für eng gekoppelte Arbeitslasten. Optimierungen, durch die die Latenz für kleine Nachrichten reduziert wird, sind enthalten. Dadurch profitieren Anwendungen, die stark von der Point-to-Point- und kollektiven Kommunikation abhängen.
- Computing-Optimierungen für HPC-Arbeitslasten. Optimierungen, die den Systemjitter reduzieren, sind nun verfügbar, wodurch die Leistung eines einzelnen Knotens vorhersehbarer wird.
- Konsistente, reproduzierbare Leistung. Die VM-Image-Standardisierung ermöglicht eine konsistente, reproduzierbare Leistung auf Anwendungsebene.
- Verbesserte Anwendungskompatibilität. Die Ausrichtung auf die Anforderungen auf Knotenebene der Intel HPC-Plattformspezifikation ermöglicht ein hohes Maß an Interoperabilität zwischen Systemen.
Features
Kollektive Intel MPI-Abstimmungen
Das HPC-VM-Image enthält kollektive Intel-MPI-Abstimmungen, die für c2-standard-60
- und c2d-standard-112
-Instanzen unter Verwendung von Richtlinien für kompakte Platzierungen ausgeführt werden.
Vorinstallierte RPMs
Im HPC-VM-Image sind die folgenden RPM-Pakete vorinstalliert:
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
- Paketgruppe „Entwicklungstools“
Kurzanleitungen
Hinweis
- Damit Sie die Google Cloud CLI für diese Kurzanleitung verwenden können, müssen Sie zuerst die Google Cloud CLI installieren und initialisieren:
- Wählen Sie in der Google Cloud Console auf der Seite zur Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
Erstellen Sie eine HPC-VM-Instanz.
Erstellen Sie die VM.
Es wird dringend empfohlen, einen computing-optimierten Maschinentyp wie C2, C2D oder H3. Bei diesen VMs ist der virtuelle Kern dem physischen fest zugeordnet und sie stellen für Gastbetriebssysteme die NUMA-Zellarchitektur bereit, die für die Leistung eng gekoppelter HPC-Anwendungen entscheidend sind.
Console
Rufen Sie in der Google Cloud Console die Cloud Marketplace-Seite „HPC-VM” auf. Zur Marketplace-Seite von HPC VM
Klicken Sie auf Starten.
Geben Sie auf der Seite zur Bereitstellung der HPC-VM einen Bereitstellungsnamen ein. Dieser Name wird zum Stamm Ihres VM-Namens. Compute Engine fügt bei der Benennung der Instanz das Suffix
-vm
an.Wählen Sie eine Zone und einen Maschinentyp aus. Für diese Kurzanleitung können Sie alle Einstellungen übernehmen oder ändern. Es wird dringend empfohlen, einen computing-optimierten Maschinentyp wie C2, C2D, oder H3 auszuwählen.
Behalten Sie für Bootlaufwerktyp, Größe des Bootlaufwerks und Netzwerkschnittstelle die Standardeinstellungen bei.
Klicken Sie auf Deploy.
Nachdem die VM-Instanz erstellt wurde, wird der Cloud Deployment Manager geöffnet. Hier können Sie Ihre HPC-VM und andere Bereitstellungen verwalten.
gcloud
Erstellen Sie eine HPC-VM mit dem Befehl instances create
.
Es wird dringend empfohlen, HPC-VMs mit kompakten Platzierungsrichtlinien zu erstellen, um eine niedrige Netzwerklatenz zu erzielen. Wenn Sie mehr als VMs benötigen, als in eine einzelne kompakte Platzierungsrichtlinie passen, teilen Sie Ihre VMs in mehrere Platzierungsrichtlinien auf. Wir empfehlen, die Mindestanzahl von Platzierungsrichtlinien zu verwenden, die zu Ihren VMs passen kann.
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
Ersetzen Sie Folgendes:
VM_NAME
: Name der HPC-VM, die erstellt werden sollZONE
: Zone, in der die VM erstellt werden sollIMAGE_FAMILY
: Die Image-Familie des Image, mit dem VM-Instanzen erstellt werden sollen. Verwenden Siehpc-centos-7
für ein CentOS-basiertes Image oderhpc-rocky-linux-8
für ein Rocky Linux 8-basiertes Image.MACHINE_TYPE
: Maschinentyp für die neue VM
Nach einiger Zeit ist das Erstellen der VM-Instanz abgeschlossen. Führen Sie den folgenden Befehl aus, um die VM zu prüfen und ihren Status anzusehen:
gcloud compute instances describe VM_NAME
Auf die VM zugreifen
Console
Nachdem Sie Ihre HPC-VM-Instanz erstellt haben, wird sie automatisch gestartet. So greifen Sie darauf zu:
Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.
Klicken Sie auf den Namen Ihrer VM-Instanz.
Klicken Sie im Abschnitt Remotezugriff auf die erste Drop-down-Liste und wählen Sie aus, wie Sie auf die Instanz zugreifen möchten.
Compute Engine leitet Ihre SSH-Schlüssel weiter und erstellt Ihren Nutzer. Weitere Informationen finden Sie unter Mit Linux-VMs verbinden.
gcloud
Nachdem Sie Ihre HPC-VM-Instanz erstellt haben, wird sie automatisch gestartet. Verwenden Sie den Befehl compute ssh
, um mithilfe von SSH darauf zuzugreifen:
gcloud compute ssh VM_NAME
Compute Engine leitet Ihre SSH-Schlüssel weiter und erstellt Ihren Nutzer. Weitere Informationen finden Sie unter Verbindung zu Instanzen herstellen.
Bereinigen
Löschen Sie die von Ihnen erstellte HPC-VM-Instanz, damit Ihrem Google Cloud-Konto die in dieser Kurzanleitung verwendeten Ressourcen nicht in Rechnung gestellt werden.
Console
Rufen Sie in der Google Cloud Console die Seite Monitoring auf.
Klicken Sie auf das Kästchen neben dem HPC-VM-Deployment.
Klicken Sie auf Löschen.
gcloud
Führen Sie folgenden instances delete
-Befehl aus:
gcloud compute instances delete VM_NAME
HPC-VMs mit kompakten Platzierungsrichtlinien erstellen
Sie können die Latenz zwischen VMs reduzieren. Erstellen Sie dazu eine kompakte Platzierungsrichtlinie. Mit einer kompakten Platzierungsrichtlinie wird sichergestellt, dass sich VMs in derselben Verfügbarkeitszone nah beieinander befinden.
So erstellen Sie HPC-VMs, die eine Richtlinie für kompakte Platzierung angeben:
Führen Sie einen der folgenden Schritte aus:
HPC-VM gemäß Best Practices konfigurieren
Wir empfehlen die folgenden Best Practices, um eine bessere und vorhersagbare Leistung Ihrer HPC-VM zu erzielen.
Gleichzeitiges Multithreading deaktivieren
Das HPC-VM-Image ermöglicht standardmäßig das gleichzeitige Multithreading (SMT), auch als Hyper-Threading auf Intel-Prozessoren bezeichnet. Die Deaktivierung von SMT kann die Leistung vorhersehbarer machen und die Jobzeiten verringern.
Mit den folgenden Methoden können Sie SMT deaktivieren:
Wenn Sie SMT beim Erstellen einer neuen HPC-VM deaktivieren möchten, führen Sie die Schritte zum Erstellen einer HPC-VM aus und fügen Sie das Flag
--threads-per-core=1
hinzu.Stellen Sie eine Verbindung zur VM her und führen Sie den folgenden Befehl von der VM aus, um SMT auf einer vorhandenen HPC-VM zu deaktivieren:
sudo google_mpi_tuning --nosmt
Weitere Informationen finden Sie unter Anzahl der Threads pro Kern festlegen.
gVNIC als virtuelle Netzwerkschnittstelle verwenden
Das HPC-VM-Image unterstützt sowohl Virtio-net als auch Google Virtual NIC (gVNIC) als virtuelle Netzwerkschnittstellen. Die Verwendung von gVNIC anstelle von Virtio-net kann die Skalierbarkeit von MPI-Anwendungen verbessern, da sie eine bessere Kommunikationsleistung und einen höheren Durchsatz bietet. Darüber hinaus ist gVNIC eine Voraussetzung für erweiterte Netzwerke, die eine höhere Bandbreite bieten und einen höheren Durchsatz erlauben.
Wenn Sie eine neue VM erstellen, wird Virtio-net standardmäßig als virtuelle Netzwerkschnittstelle verwendet. Folgen Sie zum Verwenden von gVNIC den Schritten zum Erstellen einer HPC-VM und fügen Sie das Flag --network-interface=nic-type=GVNIC
Das HPC-VM-Image enthält den gVNIC-Treiber als Dynamic Kernel Module Support (DKMS). Weitere Informationen finden Sie unter Virtuelle Google-NIC verwenden.
Risikominderungen von Meltdown und Spectre deaktivieren
Das HPC-VM-Image aktiviert die Meltdown- und Spectre-Risikominderungen standardmäßig. In einigen Fällen können diese Risikominderungen zu arbeitslastspezifischen Leistungseinbußen führen. Um diese Abschwächungen zu deaktivieren und die damit verbundenen Sicherheitsrisiken in Kauf zu nehmen, gehen Sie so vor:
Führen Sie auf Ihrer HPC-VM den folgenden Befehl aus:
sudo google_mpi_tuning --nomitigation
Starten Sie die VM neu.
Netzwerkleistung verbessern
Richten Sie zur Verbesserung der Netzwerkleistung Ihrer VM eine oder mehrere der folgenden Konfigurationen ein:
Konfigurieren Sie eine höhere Bandbreite. Verwenden Sie zum Konfigurieren der Netzwerkleistung pro VM Tier_1 den Befehl
gcloud compute instances create
, um die VM zu erstellen, und geben Sie das Flag--network-performance-configs
an. Weitere Informationen finden Sie unter VM mit hoher Bandbreitenkonfiguration erstellen.Jumbo Frames verwenden Zur Minimierung des Verarbeitungsaufwands für Netzwerkpakete empfehlen wir die Verwendung einer größeren Paketgröße. Sie müssen größere Paketgrößen für die Besonderheiten Ihrer Anwendung validieren. Informationen zur Verwendung von Jumbo Frames und Paketgrößen finden Sie in der Anleitung für die maximale Übertragungseinheit.
Erhöhen Sie die TCP-Speicherlimits. Eine höhere Bandbreite erfordert einen größeren TCP-Arbeitsspeicher. Folgen Sie der Anleitung, um die Einstellungen für
tcp_*mem
zu erhöhen.Netzwerklatenzprofil verwenden Prüfen Sie die Latenz der Anwendung und aktivieren Sie Busy Polling, um die Latenz im Netzwerkempfangspfad zu reduzieren. Passen Sie die Einstellungen
net.core.busy_poll
undnet.core.busy_read
in/etc/sysctl.conf
an oder verwenden Sietuned-adm
.
Intel MPI 2021 verwenden
Google empfiehlt die Verwendung der Intel MPI 2021-Bibliothek zum Ausführen von MPI-Jobs in Google Cloud.
MPI-Implementierungen haben viele interne Konfigurationsparameter, die sich auf die Kommunikationsleistung auswirken können. Diese Parameter sind besonders für die MPI Collective-Kommunikation relevant, für die Sie Algorithmen und Konfigurationsparameter angeben können, die in der Google Cloud-Umgebung sehr unterschiedliche Leistung erzielen können.
Das HPC-VM-Image enthält das Dienstprogramm Google-hpc-compute
, mit dem Sie die empfohlenen MPI-Bibliotheken einfach installieren und Google Cloud-gebundene Libfabric-Anbieter über den TCP-Transport verwenden können.
Dienstprogramm google-hpc-compute
für Unterstützung von IntelMPI 2021 verwenden
Das Skript google_install_intelmpi
ist das MPI-bezogene Tool im Dienstprogramm Google-hpc-compute
. Es unterstützt die Installation und Konfiguration von IntelMPI 2021.11.
Das Dienstprogramm Google-hpc-compute
ist im HPC-VM-Image enthalten.
Intel MPI 2021 installieren
Führen Sie zum Installieren der IntelMPI-Bibliothek beim Erstellen einer neuen HPC-VM die Schritte zum Erstellen einer HPC-VM aus und fügen Sie beim Erstellen der VM-Instanz Folgendes hinzu:
--metadata=google_install_intelmpi="--impi_2021"
Führen Sie den folgenden Befehl auf dieser VM aus, um die Bibliothek auf einer vorhandenen HPC-VM zu installieren:
sudo google_install_intelmpi --impi_2021 --install_dir=PATH_INSTALL_MPI
Der Standardspeicherort für install_dir
ist auf /opt/intel
festgelegt.
Intel MPI 2018 im HPC CentOS 7-Image
Intel HPI 2018-Unterstützung ist im HPC CentOS 7-Image in Google Cloud verfügbar.
Weitere Informationen finden Sie im Dienstprogramm-Nutzerhandbuch von google_install_mpi
.
Für zusätzliche Anwendungsfälle im Zusammenhang mit Intel MPI 2018, z. B. das Ausführen von MPI-Anwendungen, die mit Intel Parallel Studio XE erstellt wurden, verwenden Sie die vollständige Intel PSXE-Laufzeit (Parallel Studio XE). Ersetzen Sie dazu intel_mpi
durch intel_psxe_runtime
in den obigen Befehlen. Die PSXE-Laufzeit enthält mehrere Bibliotheken, die für die Ausführung von MPI-Anwendungen wichtig sind, wie z. B. die Intel Math Kernel Library (MKL).
Benutzerdefiniertes Image mit dem HPC-VM-Image erstellen
Eine benutzerdefinierte VM erstellen, die das HPC-VM-Image verwendet
Erstellen Sie ein benutzerdefiniertes Image mit dem Bootlaufwerk Ihres HPC-VM-Images als Quelllaufwerk. Verwenden Sie dazu die Google Cloud Console oder die Google Cloud CLI.
Console
Rufen Sie in der Google Cloud Console die Seite Images auf.
Klicken Sie auf Image erstellen.
Geben Sie unter Name einen Namen für Ihr Image an.
Wählen Sie unter Quelllaufwerk den Namen des Bootlaufwerks auf Ihrer HPC-VM aus.
Legen Sie weitere Attribute für das Image fest.
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie das benutzerdefinierte Image mit dem Befehl images create
.
gcloud compute images create IMAGE_NAME \ --source-disk=VM_NAME \ --source-disk-zone=VM_ZONE \ --family=IMAGE_FAMILY \ --storage-location=LOCATION
Dabei gilt:
IMAGE_NAME
ist der Name für das benutzerdefinierte Image.VM_NAME
ist der Name Ihrer HPC-VM.INSTANCE_ZONE
ist die Zone, in der sich die HPC-VM befindet.IMAGE_FAMILY
: Optional. Die Image-Familie, zu der das neue Image gehört.LOCATION
: Optional. Region, in der das benutzerdefinierte Image gespeichert werden soll. Der Standardspeicherort ist der multiregionale Speicherort, der dem Speicherort des Quelllaufwerks am nächsten ist.
Preise
Das HPC-VM-Image ist ohne zusätzliche Kosten verfügbar. Da das HPC-VM-Image auf Compute Engine ausgeführt wird, können Kosten für Compute Engine-Ressourcen wie C2-vCPUs und Speicher anfallen. Weitere Informationen finden Sie unter Preise für Compute Engine.
Beschränkungen
Die Vorteile der Abstimmung sind von Anwendung zu Anwendung unterschiedlich. In manchen Fällen wirkt sich eine bestimmte Abstimmung möglicherweise negativ auf die Leistung aus. Prüfen Sie Ihre Anwendungen, um die optimale oder kostengünstige Konfiguration zu finden.
Nächste Schritte
- Weitere Informationen zum Hochleistungs-Computing in der Google Cloud
- Weitere Informationen zur H3-Maschinenserie
- Bulk Instance API verwenden
- Wenn Sie Feedback haben oder Support benötigen, senden Sie eine E-Mail an [email protected].