HPC-fähige VM-Instanz erstellen


Einführung

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 mit der H3-Maschinenreihe 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:

Vorteile

Das HPC-VM-Image bietet folgende Vorteile:

  1. 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.
  2. 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.
  3. Computing-Optimierungen für HPC-Arbeitslasten. Optimierungen, die den Systemjitter reduzieren, sind nun verfügbar, wodurch die Leistung eines einzelnen Knotens vorhersehbarer wird.
  4. Konsistente, reproduzierbare Leistung. Die VM-Image-Standardisierung ermöglicht eine konsistente, reproduzierbare Leistung auf Anwendungsebene.
  5. 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

Automatische Updates deaktivieren

Automatische Updates können sich negativ auf die Leistung von HPC-Anwendungen auswirken. Automatische Updates können bei Verwendung der HPC-VM-Images deaktiviert werden, indem Sie beim Erstellen einer VM den Metadateneintrag google_disable_automatic_updates auf TRUE festlegen. Wie Metadaten bei der VM-Erstellung festgelegt werden, hängt vom Tool ab, mit dem Sie die VM erstellen.

Wenn Sie beispielsweise den Befehl gcloud compute instances create verwenden, um eine VM zu erstellen, geben Sie das Argument --metadata an. Weitere Informationen finden Sie unter Informationen zu VM-Metadaten.

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:

  • daos-client
  • gcc-gfortran
  • gcc-toolset-12
  • Lmod
  • dkms
  • htop
  • hwloc
  • hwloc-devel
  • kernel-devel
  • libfabric
  • libXt
  • ltrace
  • nfs-utils
  • numactl
  • numactl-devel
  • papi
  • pciutils
  • pdsh
  • perf
  • redhat-lsb-core
  • redhat-lsb-cxx
  • rsh
  • screen
  • strace
  • wget
  • zsh
  • Paketgruppe „Entwicklungstools“

Kurzanleitungen

Hinweis

  1. Damit Sie die Google Cloud CLI für diese Kurzanleitung verwenden können, müssen Sie zuerst die Google Cloud CLI installieren und initialisieren:
  2. Wählen Sie in der Google Cloud Console auf der Seite der 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 auszuwählen. 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

  1. Rufen Sie in der Google Cloud Console die Cloud Marketplace-Seite „HPC-VM“ auf. Zur Marketplace-Seite von HPC VM

  2. Klicken Sie auf Starten.

  3. 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.

  4. 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.

  5. Behalten Sie für Bootlaufwerktyp, Größe des Bootlaufwerks und Netzwerkschnittstelle die Standardeinstellungen bei.

  6. Klicken Sie auf Bereitstellen.

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 VMs benötigen, als in eine einzelne Richtlinie für kompakte Platzierungen passen, verteilen Sie Ihre VMs auf mehrere Platzierungsrichtlinien. Wir empfehlen, die Mindestanzahl von Platzierungsrichtlinien zu verwenden, die für Ihre VMs geeignet sind.

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 soll
  • ZONE: Zone, in der die VM erstellt werden soll
  • IMAGE_FAMILY: Die Image-Familie des Image, mit dem VM-Instanzen erstellt werden sollen. Verwenden Sie hpc-centos-7 für ein CentOS-basiertes Image oder hpc-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:

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu „VM-Instanzen“

  2. Klicken Sie auf den Namen Ihrer VM-Instanz.

  3. 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

  1. Rufen Sie in der Google Cloud Console die Seite Bereitstellungen auf.

    Zu Deployments

  2. Klicken Sie auf das Kästchen neben dem HPC-VM-Deployment.

  3. 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 mit einer Richtlinie für kompakte Platzierung:

  1. Kompakte Platzierungsrichtlinie erstellen

  2. 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:

  1. Führen Sie auf Ihrer HPC-VM den folgenden Befehl aus:

    sudo google_mpi_tuning --nomitigation
    
  2. 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 net.core.busy_poll- und net.core.busy_read-Einstellungen in /etc/sysctl.conf an oder verwenden Sie tuned-adm.

Intel MPI 2021 verwenden

Google empfiehlt zum Ausführen von MPI-Jobs in Google Cloud die Intel MPI 2021-Bibliothek.

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.

Das Dienstprogramm Google-hpc-compute ist im HPC-VM-Image enthalten.

Intel MPI 2021 installieren

Wenn Sie die IntelMPI-Bibliothek beim Erstellen einer neuen HPC-VM installieren möchten, führen Sie 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 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

  1. Eine benutzerdefinierte VM erstellen, die das HPC-VM-Image verwendet

  2. VM mit MPI-Abstimmungen anpassen.

  3. 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

  1. Rufen Sie in der Google Cloud Console die Seite Images auf.

    Zur Seite „Images“

  2. Klicken Sie auf Image erstellen.

  3. Geben Sie unter Name einen Namen für Ihr Image an.

  4. Wählen Sie unter Quelllaufwerk den Namen des Bootlaufwerks auf Ihrer HPC-VM aus.

  5. Legen Sie weitere Attribute für das Image fest.

  6. 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