HPC-Clusterstack aus Oracle Cloud Marketplace konfigurieren

Der HPC-Clusterstack verwendet Terraform, um Oracle Cloud Infrastructure-Ressourcen bereitzustellen. Der Stack erstellt GPU-Knoten, Speicher, Standardnetzwerke und Hochleistungsclusternetzwerke sowie einen Bastion-/Kopfknoten für den Zugriff auf und die Verwaltung des Clusters.

GPU-Cluster bereitstellen

Ihr Oracle Cloud-Account muss zu einer Gruppe mit der Berechtigung zum Deployment und zur Verwaltung dieser Ressourcen gehören. Weitere Informationen zu Policy-Anforderungen finden Sie unter Verwendungsanweisungen für HPC-Cluster.

Sie können den Stack in einem vorhandenen Compartment bereitstellen. Möglicherweise ist er jedoch sauberer, wenn Sie ein Compartment speziell für das Cluster erstellen.

Hinweis:

Die Verwendung des Marketplace-Stacks für das Provisioning einer Umgebung ist zwar kostenlos, die bereitgestellten Ressourcen werden jedoch beim Starten des Stacks in Rechnung gestellt.
  1. Erstellen Sie ein Compartment für Ihren Mandanten und Ihre Region, und prüfen Sie, ob Policys verfügbar sind.
    1. Melden Sie sich bei der OCI-Konsole als Oracle Cloud-Benutzer für den Mandanten und die Region an, in der Sie arbeiten möchten.
    2. Erstellen Sie ein Compartment für die Clusterressourcen.
    3. Stellen Sie sicher, dass OCI-Policys vorhanden sind, damit Sie das Cluster erstellen können.
      Möglicherweise benötigen Sie Unterstützung von Ihrem Sicherheits- oder Netzwerkadministrator. Im Folgenden finden Sie eine Beispiel-Policy: "Erlauben Sie der Gruppe myGroup, alle Ressourcen im Compartment compartment zu verwalten".
  2. Verwenden Sie den HPC-Clusterstack, um das GPU-Cluster bereitzustellen.
    1. Navigieren Sie zum Marketplace, und klicken Sie dann auf Alle Anwendungen.
    2. Geben Sie im Feld Nach Angeboten suchen HPC-Cluster ein.

      Hinweis:

      Wenn der HPC-Clusterstack in OCI Marketplace in Ihrem Mandanten nicht verfügbar ist, können Sie den Stack aus GitHub (Git-Klon https://github.com/oracle-quickstart/OCI-HPC.git) klonen und in OCI Resource Manager importieren. Dies bietet dieselbe Funktionalität, erfordert jedoch Zugriff auf ein geeignetes "benutzerdefiniertes BS-Image" für die GPU-Knoten.
    3. Klicken Sie auf HPC-Cluster.
    4. Wählen Sie eine Version aus.
      Wir haben den Standardwert v2.10.4.1 verwendet.
    5. Wählen Sie ein Compartment aus, in dem das Cluster erstellt werden soll
    6. Klicken Sie auf Stack starten.

Cluster konfigurieren

Wenn der Stack gestartet wird, füllen Sie die Seiten "Stackinformationen" und "Konfiguration" aus, um mit der Konfiguration des Clusters zu beginnen.

  1. Füllen Sie die Seite Stackinformationen aus:
    1. Geben Sie einen Namen für das Cluster ein.
    2. (Optional) Fügen Sie eine kurze Beschreibung hinzu.
    3. Klicken Sie auf Weiter.

    Die Seite Konfigurationsvariablen wird angezeigt.

  2. Cluster konfigurieren
    Die Seite Konfigurationsvariablen bietet viele Möglichkeiten, das Cluster an Ihre Anforderungen anzupassen. Wir decken nicht jede Option im Detail ab. Stattdessen bieten wir Anleitungen, wo nicht standardmäßige Einstellungen erforderlich sind, um ein GPU-Cluster zu erstellen, das NVIDIA-Clustersoftware unterstützt.
    1. Fügen Sie unter Public SSH-Schlüssel einen Public Key hinzu, mit dem Sie sich beim Cluster anmelden können.
    2. Aktivieren Sie das Kontrollkästchen Benutzerdefinierten Clusternamen verwenden, und geben Sie einen Basishostnamen ein.
      Wird als Präfix für Bastion- und Anmeldeknotenhostnamen verwendet.
  3. Mit den Headnode-Optionen können Sie die Bastion anpassen.
    Diese Instanz dient als Hauptanmeldeknoten, der Slurm-Controller, und kann auch für einige Builds und andere Aktivitäten zur Unterstützung des Clusters verwendet werden. Hier können Sie die CPU-, Speicher- und Boot-Volume-Kapazität an Ihre Anforderungen anpassen
  4. Wählen Sie mit Compute-Knotenoptionen den Typ und die Menge der Worker-Knoten im Cluster aus. Sie können diese Knoten mit einem BS-Image aus dem Marketplace bereitstellen oder ein benutzerdefiniertes Image mit Ihrem bevorzugten BS-Build bereitstellen.
    • Availability-Domain: Wenn Sie in einer Region mit mehreren Availability-Domains (ADs) arbeiten, wählen Sie die AD mit der besten Verfügbarkeit von GPU-Ressourcen aus.
    • Wählen Sie Cluster-Netzwerk verwenden aus.
    • Ausprägung der Compute Nodes: Wählen Sie die Bare-Metal-GPU-Ausprägung aus, die Sie in diesem Cluster verwenden. Beispiel: BM.GPU4.8.
    • Anfängliche Clustergröße: Geben Sie die Anzahl der Bare-Metal-Knoten ein, die bereitgestellt werden sollen.
    • Um mit einem vorkonfigurierten BS-Image aus dem Marketplace zu erstellen, wählen Sie Marketplace-Image verwenden aus. Wählen Sie dann unter Imageversion eines der GPU-Images für ein BS aus, das mit Treibern für GPUs und RDMA-Netzwerke vorkonfiguriert ist.
    • Marketplace-Image verwenden: Wenn Sie das Cluster mit einem benutzerdefinierten Image erstellen, deaktivieren Sie dieses Kontrollkästchen, und wählen Sie Nicht unterstütztes Image verwenden aus. Geben Sie dann unter Image-OCID die OCID des benutzerdefinierten Images an, das Sie bereits in den Mandanten hochgeladen haben.
    • Compute Agent verwenden: Diese Option ist möglicherweise für Marketplace-Images erforderlich.
  5. (Optional) Zusätzlicher Anmeldeknoten stellt einen zweiten Host für Clusterbenutzer zur Interaktion mit dem Cluster bereit. Form, OCPUS und Speicher können an Ihre Anforderungen angepasst werden.
  6. Erweiterte Speicheroptionen bieten verschiedene Möglichkeiten zur Vorkonfiguration von Shared Storage, der im gesamten Cluster verfügbar ist. Klicken Sie auf Erweiterte Speicheroptionen anzeigen, um die Auswahl einzublenden.
    • Das Bastion-Home-Verzeichnis ist NFS, das von allen Clusterknoten gemeinsam verwendet wird. Dies ist Teil des Boot-Volumes von Headnode, das Sie in den Headnode-Optionen anpassen können.
    • Für mehr Shared Storage wählen Sie Zusätzliches Block-Volume für Shared Space aus, und geben Sie die Kapazität ein. Dieses Volume ist an die Bastion angehängt und im Cluster als /nfs/cluster gemeinsam verwendet.
    • Freigegebener NFS-Scratch-Speicherplatz von NVME oder Block-Volume teilt die NVMe-Kapazität vom ersten Compute Node im Cluster als /NFS/scratch. Dies bietet einen leistungsstärkeren Speicher als die Headnode-Volumes, bietet jedoch möglicherweise weniger Kapazität und Verfügbarkeit.
    • Mount Localdisk erstellt ein Dateisystem aus NVMe auf jedem Compute Node und mounte es lokal auf diesem Knoten.
    • Ein logisches Volume verwendet LVM, um ein größeres Volume aus mehreren NVMe-Geräten zu erstellen.
    • Redundanz erhöht die Zuverlässigkeit (hälft jedoch die nutzbare Kapazität) des NVMe-Speichers durch Spiegelung von Geräten.
  7. Wählen Sie mit Netzwerkoptionen das VCN aus.
    • Vorhandenes VCN verwenden: Standardmäßig deaktiviert. Wenn diese Option deaktiviert ist, wird ein neues VCN bereitgestellt. Aktivieren Sie dieses Kontrollkästchen, um das Cluster in einem vorhandenen VCN und Subnetzen bereitzustellen. Dies erleichtert die Integration dieses Clusters und anderer Mandantenressourcen.
  8. Wählen Sie über die Software die zu installierende Software.
    • Wählen Sie SLURM installieren, um die Planung und Verwaltung von SLURM-Jobs bereitzustellen.
    • (Optional) Wählen Sie HPC-Clusterüberwachungstools installieren aus, um einen besseren Einblick in die Clusteraktivität und -auslastung zu erhalten.
    • Wählen Sie NVIDIA Enroot für containerisierte GPU-Workloads installieren aus. Dadurch wird die Umgebung für die Ausführung von Workloads in NVIDIA PyTorch, NVIDIA NeMo Platform und anderen Containern vorbereitet.

      Hinweis:

      Es ist wichtig, dass Sie diese Option auswählen.
    • Wählen Sie NVIDIA Pyxis-Plug-in für Slurm installieren.
    • Wählen Sie PAM aktivieren aus, um den Anmeldezugriff auf Compute Nodes zu begrenzen.
  9. Debuggen: Stellen Sie sicher, dass die Option System konfigurieren ausgewählt ist (Standard).
  10. Klicken Sie auf Weiter, um die Konfigurationseinstellungen zu prüfen.

    Im Bericht werden unter Clusterkonfiguration alle nicht standardmäßigen Auswahlen angezeigt. Sie können auf die Seite Zurück zurückkehren, um Änderungen vorzunehmen und alle Einstellungen erneut zu öffnen.

  11. Wählen Sie Anwendung ausführen aus, und klicken Sie auf Erstellen, um den Stack in Ihrem Mandanten zu starten und das Cluster zu erstellen.
    Der Stack wird in OCI Resource Manager erstellt und mit Ihren Spezifikationen gestartet, um sofort mit dem Provisioning zu beginnen.

    Dieser Prozess dauert einige Minuten. Das Provisioning der Knoten dauert nur wenige Minuten pro Compute Node. Die Installation zusätzlicher Software auf den Knoten erhöht jedoch die Build-Zeit. Sie können den Build-Fortschritt in der OCI-Konsole überwachen. Gehen Sie zu Ressourcenmanager und dann zu Jobs, um das neueste Joblog auf Aktivitäten und mögliche Fehler zu prüfen. Wenn der Resource Manager-Jobstatus Erfolgreich meldet, ist das Deployment abgeschlossen.

    Wenn der endgültige Status nicht erfolgreich ist, prüfen Sie das Joblog auf Details. Bei Problemen im Zusammenhang mit Compute-Instanzen und Clusternetzwerken sind möglicherweise weitere Informationen unter Arbeitsanforderungen für Clusternetzwerke verfügbar. Um zu der Seite zu navigieren, gehen Sie zu Compute, Clusternetzwerke, Clusternetzwerkdetails, Arbeitsanforderungen für Clusternetzwerke. Wählen Sie die letzte Arbeitsanforderung aus, um Details anzuzeigen.

  12. Bei erfolgreichen Builds wird die IP-Adresse der Bastion am Ende des Joblogs gemeldet. Wenn Sie einen zusätzlichen Anmeldeknoten konfiguriert haben, wird auch die IP-Adresse des Anmeldeknotens angezeigt. Beispiel:
    Apply complete! Resources: 23 added, 0 changed, 0 destroyed.
    
    Outputs:
    RDMA_NIC_metrics_url = "https://objectstorage.us-gov-phoenix-1.oraclecloud.com
    backup = "No Slurm Backup Defined"
    bastion = 139.87.214.247
    login = "No Login Node Defined"
    private_ips = 172.16.6.4 172.16.7.109"
  13. Notieren Sie sich die öffentliche IP-Adresse der Bastion, wie sie für die Anmeldung beim Cluster erforderlich ist.
    Sie können die IP-Adressen auch in der OCI-Konsole unter Compute, Instanzen suchen.