Übung: Hinzufügen eines benutzerdefinierten Knotenarrays zu einem HPC-Cluster
Achtung
Diese Inhalte beziehen sich auf CentOS, eine Linux-Distribution, deren Dienstende (End-of-Life, EOL) ansteht. Sie sollten Ihre Nutzung entsprechend planen. Weitere Informationen finden Sie im CentOS End-of-Life-Leitfaden.
Ein Nodearray ist eine Sammlung identisch konfigurierter Knoten eines Azure CycleCloud-Clusters. Sein Zweck besteht in der horizontalen Skalierung der Clustercomputeressourcen, wenn sich die Anzahl der Aufträge in der Warteschlange ändert. Jedes Nodearray verfügt über einen Namen, eine Reihe von Attributen, die für jeden der zugehörigen Knoten gelten, sowie optionale Attribute, die beschreiben, wie die Skalierung des Nodearrays erfolgen soll.
Der Slurm-Auftragsplaner gruppiert Knoten anhand von Partitionen in logische und möglicherweise überlappende Mengen. Ihr Zweck besteht darin, die Verarbeitung von Aufträgen unter Berücksichtigung ihrer spezifischen Einschränkungen wie Ressourcen- oder Zeitlimits zu optimieren. Der Planer ordnet den Knoten innerhalb einer Partition Aufträge zu, bis die Ressourcen erschöpft sind oder alle Aufträge verarbeitet werden.
Sie möchten Ihren neu bereitgestellten, in Azure CycleCloud verwalteten Cluster ändern, um auftragsspezifische Ressourcenanforderungen zu berücksichtigen. Um dieses Ziel zu erreichen, beschließen Sie, weitere Änderungen an der zugrunde liegenden Vorlage vorzunehmen und Ihren Ansatz zu überprüfen.
In dieser Übung führen Sie die folgenden Aufgaben aus:
- Aufgabe 1: Hinzufügen einer Nodearray-Definition zur Azure CycleCloud-Vorlage
- Aufgabe 2: Hinzufügen von Parametern der grafischen Benutzeroberfläche zur Azure CycleCloud-Vorlage
- Aufgabe 3: Exportieren von Azure CycleCloud-Clustereigenschaften
- Aufgabe 4: Bearbeiten der Eigenschaftendatei durch Hinzufügen der neuen Parameter
- Aufgabe 5: Importieren der geänderten Vorlage und Parameterdatei in den vorhandenen Cluster
Hinweis
Sie müssen die vorherige Übung erfolgreich abgeschlossen haben, bevor Sie mit dieser Übung beginnen.
Aufgabe 1: Hinzufügen einer Nodearray-Definition zur Azure CycleCloud-Vorlage
Zunächst fügen Sie der Slurm-Vorlage, die Sie in der vorherigen Übung angepasst haben, eine Definition eines Nodearrays hinzu. Die Beispielvorlage enthält zwei Partitionen mit den Bezeichnungen hpc und htc. Sie erstellen eine weitere Partition und das entsprechende Nodearray für Aufträge, die von den CUDA-Funktionen (Compute Unified Device Architecture) profitieren.
Navigieren Sie zum Azure-Portal. Authentifizieren Sie sich bei Aufforderung mit einem Microsoft-Konto oder einem Microsoft Entra-Konto, das im Azure-Abonnement, das Sie in diesem Modul verwenden, über die Rolle „Mitwirkender“ oder „Besitzer“ verfügt.
Öffnen Sie Cloud Shell im Azure-Portal, indem Sie auf der Symbolleiste neben dem Suchtextfeld auf das entsprechende Symbol klicken, und stellen Sie sicher, dass eine Bash-Sitzung ausgeführt wird.
Führen Sie den folgenden Befehl in Cloud Shell aus, um das Arbeitsverzeichnis auf das Verzeichnis festzulegen, das das GitHub-Repository hostet, das Sie in der vorherigen Übung abgerufen haben:
cd ~/cyclecloud-slurm/templatesFühren Sie den folgenden Befehl aus, um die heruntergeladene Vorlage im Nano-Editor zu öffnen:
nano slurm.txtScrollen Sie in der Nano-Editor-Benutzeroberfläche zum Abschnitt
[parameters About], und fügen Sie direkt davor den folgenden Inhalt hinzu:[[nodearray cuda]] MachineType = $CUDAMachineType ImageName = $CUDAImageName MaxCoreCount = $MaxCUDAExecuteCoreCount AdditionalClusterInitSpecs = $CUDAClusterInitSpecs [[[configuration]]] slurm.autoscale = true slurm.hpc = true [[[cluster-init cyclecloud/slurm:execute]]] [[[network-interface eth0]]] AssociatePublicIpAddress = $ExecuteNodesPublicHinweis
Wenn Sie einen Windows-Computer verwenden, können Sie den Inhalt der Zwischenablage mithilfe der Tastenkombination UMSCHALT+EINFG einfügen.
Hinweis
Durch Ihre Änderungen wird ein zusätzliches Nodearray definiert.
Aufgabe 2: Hinzufügen von Parametern der grafischen Benutzeroberfläche zur Azure CycleCloud-Vorlage
Um die Werte von Vorlagenparametern mit der grafischen Azure CycleCloud-Benutzeroberfläche zu bearbeiten, wenden Sie weitere Änderungen an der Vorlage an.
Scrollen Sie in der Nano-Editor-Benutzeroberfläche zum Abschnitt
[[parameters Auto-Scaling]], und fügen Sie direkt davor den folgenden Inhalt hinzu:[[[parameter CUDAMachineType]]] Label = CUDA VM Type Description = The VM type for CUDA execute nodes ParameterType = Cloud.MachineType DefaultValue = Standard_NC24Scrollen Sie zum Abschnitt
[[[parameter HPCMaxScalesetSize]]], und fügen Sie den folgenden Inhalt direkt davor hinzu:[[[parameter MaxCUDAExecuteCoreCount]]] Label = Max CUDA Cores Description = The total number of CUDA execute cores to start DefaultValue = 100 Config.Plugin = pico.form.NumberTextBox Config.MinValue = 0 Config.IntegerOnly = trueScrollen Sie zum Abschnitt
[[[parameter SchedulerClusterInitSpecs]]], und fügen Sie den folgenden Inhalt direkt davor hinzu:[[[parameter CUDAImageName]]] Label = CUDA OS ParameterType = Cloud.Image Config.OS = linux DefaultValue = cycle.image.centos7 Config.Filter := Package in {"cycle.image.centos7", "cycle.image.ubuntu18"}Scrollen Sie zum Abschnitt
[[parameters Advanced Networking]], und fügen Sie den folgenden Inhalt direkt davor hinzu:[[[parameter CUDAClusterInitSpecs]]] Label = CUDA Cluster-Init DefaultValue = =undefined Description = Cluster init specs to apply to CUDA execute nodes ParameterType = Cloud.ClusterInitSpecsDrücken Sie die Tastenkombination STRG+O, drücken Sie die EINGABETASTE, und drücken Sie dann die Tastenkombination STRG+X, um die vorgenommenen Änderungen zu speichern und die Datei zu schließen.
Aufgabe 3: Exportieren von Azure CycleCloud-Clustereigenschaften
Bevor Sie die Konfigurationsänderungen, die Sie in der Azure CycleCloud-Vorlage vorgenommen haben, auf den Zielcluster anwenden, müssen Sie zuerst die Clustereigenschaften exportieren.
Führen Sie den folgenden Befehl in Cloud Shell aus, um die vorhandenen Cluster auflisten zu können:
cyclecloud show_clusterHinweis
Überprüfen Sie, ob die Ausgabe den Eintrag contoso-custom-slurm-lab-cluster enthält.
Führen Sie den folgenden Befehl aus, um die Liste der Parameter des Clusters contoso-custom-slurm-lab-cluster und deren Werte in die Datei params.json zu exportieren:
cyclecloud export_parameters contoso-custom-slurm-lab-cluster > ~/params.jsonFühren Sie den folgenden Befehl aus, um die exportierte Liste der Parameter und deren Werte zu überprüfen:
cat ~/params.json
Aufgabe 4: Bearbeiten der Eigenschaftendatei durch Hinzufügen der neuen Parameter
Auch wenn die Bearbeitungen, die Sie auf die Azure CycleCloud-Vorlage angewendet haben, Standardwerte für alle neu eingeführten Parameter enthielten, müssen Sie diese möglicherweise an Ihre spezifischen Anforderungen anpassen. In dieser Aufgabe legen Sie die Werte der Parameter CUDAMachineType und MaxCUDAExecuteCoreCount fest.
Führen Sie den folgenden Befehl in Cloud Shell aus, um die heruntergeladene Parameterdatei im Nano-Editor zu öffnen:
nano ~/params.jsonScrollen Sie innerhalb des Nano-Editors zum Ende der Datei, und fügen Sie auf einer neuen Zeile vor den schließenden geschweiften Klammern (}) den folgenden Inhalt hinzu:
"CUDAMachineType" : "Standard_NC6", "MaxCUDAExecuteCoreCount" : 60Fügen Sie am Ende der Zeile vor der Zeile, die Sie im vorherigen Schritt hinzugefügt haben, ein Komma hinzu:
"CUDAMachineType" : "Standard_NC6"Drücken Sie die Tastenkombination STRG+O, drücken Sie die EINGABETASTE, und drücken Sie dann die Tastenkombination STRG+X, um die vorgenommenen Änderungen zu speichern und die Datei zu schließen.
Aufgabe 5: Importieren der geänderten Vorlage und Parameterdatei in den vorhandenen Cluster
Zum Abschluss dieser Übung importieren Sie die geänderte Vorlage und die Parameterdatei in den vorhandenen Cluster und überschreiben dabei die aktuelle Konfiguration.
Führen Sie den folgenden Befehl in Cloud Shell aus, um die geänderte Vorlage und die Parameterdatei in den vorhandenen Cluster zu importieren:
cyclecloud import_cluster contoso-custom-slurm-lab-cluster --file ~/cyclecloud-slurm/templates/slurm.txt -p ~/params.json -c Slurm --forceHinweis
Sie müssen den Namen des Zielclusters und das Flag
--forceangeben, um die Konfiguration des vorhandenen Clusters zu überschreiben.Öffnen Sie auf Ihrem Computer ein weiteres Browserfenster, und navigieren Sie zur URL https://<IP-Adresse>. Bestätigen Sie bei Aufforderung, dass Sie den Vorgang fortsetzen möchten.
Wenn Sie zur Authentifizierung aufgefordert werden, melden Sie sich über die Anmeldeinformationen desselben Azure CycleCloud-Anwendungsbenutzerkontos an, das Sie zum Konfigurieren der Azure CycleCloud-CLI verwendet haben.
Navigieren Sie in der grafischen Benutzeroberfläche von Azure CycleCloud zur Seite Cluster. Wählen Sie in der Liste der Cluster den Eintrag contoso-custom-slurm-lab-cluster und dann Bearbeiten aus.
Klicken Sie im Popupfenster contoso-custom-slurm-lab-cluster bearbeiten auf der Seite Informationen auf Weiter.
Überprüfen Sie auf der Seite Erforderliche Einstellungen, ob der Eintrag CUDA-VM-Typ auf den Wert Standard_NC6 festgelegt ist und ob die entsprechenden Optionen für die automatische Skalierung ausgewählt sind:
Glückwunsch! Sie haben die zweite Übung dieses Moduls erfolgreich abgeschlossen. In dieser Übung haben Sie Ihren Azure CycleCloud-Cluster mithilfe einer geänderten Vorlage angepasst, einschließlich der Definition eines neuen Nodearrays mit der entsprechenden Partition. Um dieses Ziel zu erreichen, haben Sie nach dem Bearbeiten der Vorlage die Clusterparameterdatei exportiert und bearbeitet und zusammen mit der geänderten Vorlage in den Cluster importiert.
Hinweis
Löschen Sie die in dieser Übung bereitgestellten und konfigurierten Ressourcen nicht, wenn Sie die nächste Übung machen möchten. Diese Ressourcen sind erforderlich, um die nächste Übung abzuschließen.