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.

Das HPC-VM-Image ist ein CentOS 7-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.

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

Features

Google empfiehlt die folgenden Optimierungen für HPC-fähige VMs. Das HPC-VM-Image enthält diese Optimierungen bereits, sodass Sie sie nicht selbst konfigurieren müssen:

Das HPC-VM-Image enthält auch Kollektive Intel-MPI-Abstimmungen, die für c2-standard-60-Instanzen unter Verwendung von kompakten Platzierungsrichtlinien ausgeführt werden.

Kurzanleitungen

Sie können eine HPC-fähige VM mit dem gcloud-Befehlszeilentool oder der Google Cloud Console erstellen. In der GCP Console ist das Image über Cloud Marketplace verfügbar.

Hinweis

  1. Damit Sie das gcloud-Befehlszeilentool für diese Kurzanleitung verwenden können, müssen Sie zuerst das Cloud SDK installieren und initialisieren:
  2. Wählen Sie in der Google Cloud Console auf der Seite zur Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

HPC-VM-Instanz erstellen

Erstellen Sie die VM.

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 C2-Maschinentyp auszuwählen. Weitere Informationen finden Sie unter Computing-optimierte Instanzen verwenden.

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

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

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

Dabei gilt:

  • INSTANCE_NAME ist Name der HPC-VM, die erstellt werden soll.
  • ZONE ist die Zone, in der die VM erstellt werden soll.
  • MACHINE_TYPE ist der Maschinentyp für die neue VM. Es wird dringend empfohlen, einen C2-Maschinentyp wie c2-standard-60 auszuwählen. Weitere Informationen finden Sie unter Computing-optimierte Instanzen verwenden.

Nach einiger Zeit ist das Erstellen der VM-Instanz abgeschlossen. Führen Sie den folgenden Befehl aus, um die Instanz zu prüfen und ihren Status zu sehen:

gcloud compute instances describe INSTANCE_NAME

Auf die VM zugreifen

Console

Nachdem Sie Ihre HPC-VM-Instanz erstellt haben, wird sie automatisch gestartet. So greifen Sie darauf zu:

  1. Öffnen Sie in der Google Cloud Console die Seite VM-Instanzen.

    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 für den Zugriff mit SSH den Befehl compute ssh:

gcloud compute ssh INSTANCE_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 Monitoring 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 INSTANCE_NAME

Kollektive Intel MPI-Abstimmungen für Ihre Anwendungen verwenden

MPI-Implementierungen wie Intel MPI und OpenMPI haben viele interne Konfigurationsparameter, die sich auf die Kommunikationsleistung auswirken können. Diese Parameter sind besonders für die kollektive MPI-Kommunikation relevant, für die Sie Algorithmen und Konfigurationsparameter angeben können, die in der Google Cloud-Umgebung sehr unterschiedliche Leistung erzielen können.

Wir empfehlen daher dringend, die Konfigurationsparameter an die Eigenschaften Ihrer Anwendungen anzupassen. Wir empfehlen außerdem dringend, bei der Erstellung und Verwendung der Abstimmungskonfigurationsdateien die VM-Platzierungsrichtlinien zu aktivieren.

Im HPC-VM-Image enthaltene Abstimmungskonfigurationen

Das HPC-VM-Image enthält Ausgabekonfigurationen von kollektiven Intel MPI-Abstimmungen, die auf c2-standard-60-Instanzen mit kompakten Platzierungsrichtlinien durchgeführt wurden. Diese Abstimmungsdateien sind im folgenden Verzeichnis verfügbar:

/usr/share/google-hpc-compute/mpitune-configs/intelmpi-2018

Das HPC-Image enthält mehrere Abstimmungskonfigurationen, die die folgenden Szenarien unterstützen:

  • Anzahl der VMs: 1 bis 22
  • Anzahl der MPI-Rankings (Prozesse) pro VM: 1, 2, 6, 10 und 30

So verwenden Sie diese Abstimmungskonfigurationen:

  1. Installieren Sie die Intel-MPI-Bibliothek 2018.

  2. Führen Sie das folgende Bash-Skript aus, um die Umgebung einzurichten:

    source MPI_INSTALL_DIR/mpivars.sh
    

    Ersetzen Sie MPI_INSTALL_DIR durch den Pfad zu dem Verzeichnis, in dem Sie die Intel MPI-Bibliothek installiert haben.

  3. Installieren Sie die im HPC-VM-Image enthaltenen Abstimmungen mit dem folgenden Befehl. Verwenden Sie die Option --sudo, wenn Sie Root-Zugriff auf das Verzeichnis benötigen:

    google_install_mpitune
    

Benutzerdefinierte Abstimmungskonfigurationen mit mpitune generieren

Sie können mpitune verwenden, um die Algorithmen und Konfigurationsparameter für die kollektive MPI-Kommunikation manuell anzugeben und Konfigurationsdateien zu generieren.

Wenn Sie beispielsweise 22 VMs und 30 Prozesse pro VM abstimmen möchten, laden Sie das Skript mpivars.sh herunter, um die richtige Umgebung einzurichten, und führen Sie dann den folgenden Befehl aus. Sie müssen Schreibzugriff auf das Verzeichnis haben oder den Befehl als Root ausführen.

mpitune -hf hostfile -fl 'shm:tcp' -pr 30:30 -hr 22:22

Dadurch wird eine Konfigurationsdatei im Intel MPI-Verzeichnis erstellt, mit dem Sie Anwendungen ausführen können. Wenn Sie die Abstimmungskonfiguration für eine Anwendung verwenden möchten, fügen Sie dem folgenden Befehl die Option -tune hinzu:

mpirun -tune -hostfile hostfile -genv I_MPI_FABRICS 'shm:tcp' -np 660 -ppn 30 ./app

Meltdown- und Spectre-Risikominderungen 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. Erstellen Sie eine HPC-VM-Instanz.
  2. Führen Sie auf dieser VM-Instanz den folgenden Befehl aus:

    sudo google_mpi_tuning --nomitigation
    
  3. Starten Sie die VM neu.

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