Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Bewährte Methoden
In den folgenden Abschnitten finden Sie bewährte Methoden für die Verwendung AWS ParallelCluster. Dazu gehören auch Warnungen zur Netzwerkleistung und zum Budget. Wenn Sie trotz der Einhaltung dieser bewährten Methoden auf Probleme stoßen, finden Sie unter AWS ParallelCluster Fehlerbehebung mögliche Lösungen.
Bewährte Methoden: Auswahl des Head-Node-Instance-Typs
Obwohl der Hauptknoten keinen Job ausführt, sind seine Funktionen und seine Größe entscheidend für die Gesamtleistung des Clusters. Beachten Sie bei der Auswahl des Instance-Typs, den Sie für Ihren Headnode verwenden möchten, die folgenden Merkmale:
Clustergröße: Der Head-Node orchestriert die Skalierungslogik des Clusters und ist dafür verantwortlich, neue Knoten an den Scheduler anzuhängen. Um einen Cluster mit einer großen Anzahl von Knoten nach oben oder unten zu skalieren, stellen Sie dem Hauptknoten zusätzliche Rechenkapazität zur Verfügung.
Gemeinsam genutzte Dateisysteme: Wenn Sie gemeinsam genutzte Dateisysteme verwenden, wählen Sie einen Instance-Typ mit ausreichender Netzwerkbandbreite und ausreichender Amazon EBS-Bandbreite, um Ihre Workflows abzuwickeln. Stellen Sie sicher, dass der Hauptknoten in der Lage ist, sowohl genügend NFS-Serververzeichnisse für den Cluster bereitzustellen als auch die Artefakte zu verarbeiten, die zwischen den Rechenknoten und dem Hauptknoten gemeinsam genutzt werden müssen.
Bewährte Methoden: Netzwerkleistung
Die Netzwerkleistung ist für HPC-Anwendungen (High Performance Computing) von entscheidender Bedeutung. Ohne eine zuverlässige Netzwerkleistung können diese Anwendungen nicht wie erwartet ausgeführt werden. Beachten Sie die folgenden bewährten Methoden, um die Netzwerkleistung zu optimieren.
-
Platzierungsgruppe: Wenn Sie diese verwendenSlurm, sollten Sie erwägen, jede Slurm Warteschlange so zu konfigurieren, dass sie eine Cluster-Platzierungsgruppe verwendet. Die Placement-Gruppe eines Clusters ist eine logische Gruppierung von Instances innerhalb einer einzelnen Availability Zone. Weitere Informationen finden Sie unter Platzierungsgruppen im Amazon EC2-Benutzerhandbuch. Sie können PlacementGroup im Networking Abschnitt der Warteschlange angeben, dass jede Rechenressource der Platzierungsgruppe der Warteschlange zugewiesen wird. Wenn Sie PlacementGroup im Networking Abschnitt der Rechenressource a angeben, wird diese bestimmte Rechenressource dieser Platzierungsgruppe zugewiesen. Die Spezifikation für die Platzierungsgruppe für Rechenressourcen überschreibt die Warteschlangenspezifikation für die Rechenressource. Weitere Informationen finden Sie unter SlurmQueues Networking/PlacementGroupund/SlurmQueues/ComputeResourcesNetworking/PlacementGroup.
Networking: PlacementGroup: Enabled: true Id:your-placement-group-nameSie können auch eine Platzierungsgruppe für Sie AWS ParallelCluster erstellen.
Networking: PlacementGroup: Enabled: trueAb AWS ParallelCluster Version 3.3.0 werden die Erstellung und Verwaltung von Platzierungsgruppen geändert. Wenn Sie die zu aktivierende Platzierungsgruppe ohne
nameoder in der Warteschlange angebenId, wird jeder Rechenressource eine eigene verwaltete Platzierungsgruppe zugewiesen, anstatt einer verwalteten Gruppe für die gesamte Warteschlange. Dies trägt dazu bei, Fehler bei unzureichender Kapazität zu reduzieren. Wenn Sie eine Platzierungsgruppe für die gesamte Warteschlange benötigen, können Sie eine benannte Platzierungsgruppe verwenden.SlurmQueues/Networking/PlacementGroup/Namewurde als bevorzugte Alternative zu SlurmQueues//NetworkingPlacementGroup/hinzugefügt Id.
Weitere Informationen finden Sie unter Networking.
-
Verbessertes Netzwerk: Erwägen Sie, einen Instance-Typ zu wählen, der Enhanced Networking unterstützt. Diese Empfehlung gilt für alle Instances der aktuellen Generation. Weitere Informationen finden Sie unter Enhanced Networking on Linux im Amazon EC2-Benutzerhandbuch.
-
Elastic Fabric Adapter: Um ein hohes Maß an skalierbarer Kommunikation von Instanz zu Instanz zu unterstützen, sollten Sie die Wahl von EFA-Netzwerkschnittstellen für Ihr Netzwerk in Betracht ziehen. Die speziell entwickelte Hardware zur Umgehung des Betriebssystems (OS) der EFA verbessert die Kommunikation von Instanz zu Instanz und bietet dabei die Flexibilität und Flexibilität von, die bei Bedarf von. AWS Cloud Sie können jede Slurm Warteschlange so konfigurieren, ComputeResource dass sie verwendet wird. Efa Weitere Hinweise zur Verwendung von EFA mit finden Sie AWS ParallelCluster unterElastic Fabric Adapter.
ComputeResources: - Name:your-compute-resource-nameEfa: Enabled: trueWeitere Informationen zu EFA finden Sie unter Elastic Fabric Adapter im Amazon EC2-Benutzerhandbuch für Linux-Instances.
-
Instanz-Bandbreite: Die Bandbreite skaliert mit der Instance-Größe. Informationen zu den verschiedenen Instance-Typen finden Sie unter Amazon EBS-optimierte Instances und Amazon EBS-Volume-Typen im Amazon EC2-Benutzerhandbuch.
Bewährte Methoden: Budgetwarnungen
Zur Verwaltung der Ressourcenkosten empfehlen wir AWS ParallelCluster, mithilfe von AWS Budgets Aktionen ein Budget zu erstellen. Sie können auch definierte Budgetschwellenwarnungen für ausgewählte AWS Ressourcen erstellen. Weitere Informationen finden Sie im AWS Budgets Benutzerhandbuch unter Konfiguration einer Budgetaktion. In ähnlicher Weise können Sie Amazon auch verwenden CloudWatch , um einen Abrechnungsalarm zu erstellen. Weitere Informationen finden Sie unter Erstellen eines Rechnungsalarms zur Überwachung Ihrer geschätzten AWS -Gebühren.
Bewährte Methoden: Verschieben eines Clusters in ein neues AWS ParallelCluster Neben- oder Patch-Version
Derzeit ist jede AWS ParallelCluster Nebenversion zusammen mit ihrer pcluster CLI in sich abgeschlossen. Um einen Cluster auf eine neue Unter- oder Patch-Version zu verschieben, müssen Sie den Cluster mithilfe der CLI der neuen Version neu erstellen.
Um den Prozess des Verschiebens eines Clusters auf eine neue Neben- oder Patch-Version zu optimieren, empfehlen wir Ihnen, Folgendes zu tun:
-
Speichern Sie persönliche Daten auf externen Volumes, die außerhalb des Clusters erstellt wurden, wie Amazon EFS und FSx for Lustre. Auf diese Weise können Sie die Daten in Zukunft problemlos von einem Cluster in einen anderen verschieben.
-
Erstellen Sie gemeinsam genutzte Speichersysteme mit den folgenden Typen. Sie können diese Systeme mithilfe von AWS CLI oder erstellen AWS-Managementkonsole.
Definieren Sie ein Dateisystem oder Volume in einer Cluster-Konfiguration als vorhandenes Dateisystem oder Volume. Auf diese Weise bleiben sie erhalten, wenn Sie den Cluster löschen, und können an einen neuen Cluster angehängt werden.
Wir empfehlen, Amazon EFS oder FSx für Lustre-Dateisysteme zu verwenden. Beide Systeme können gleichzeitig an mehrere Cluster angehängt werden. Darüber hinaus können Sie eines dieser Systeme an einen neuen Cluster anhängen, bevor Sie Ihren vorhandenen Cluster löschen.
-
Verwenden Sie benutzerdefinierte Bootstrap-Aktionen, um Ihre Instances anzupassen, anstatt ein benutzerdefiniertes AMI zu verwenden. Wenn Sie stattdessen ein benutzerdefiniertes AMI verwenden, müssen Sie dieses AMI für jede neue Version löschen und neu erstellen.
-
Wir empfehlen, dass Sie die obigen Empfehlungen in der folgenden Reihenfolge anwenden:
-
Aktualisieren Sie die vorhandene Clusterkonfiguration, um vorhandene Dateisystemdefinitionen zu verwenden.
-
Überprüfen Sie die
pclusterVersion und aktualisieren Sie sie bei Bedarf. -
Erstellen und testen Sie den neuen Cluster. Wenn Sie den neuen Cluster testen, überprüfen Sie Folgendes:
-
Stellen Sie sicher, dass Ihre Daten im neuen Cluster verfügbar sind.
-
Stellen Sie sicher, dass Ihre Anwendung im neuen Cluster funktioniert.
-
-
Nachdem Ihr neuer Cluster vollständig getestet und betriebsbereit ist und Sie den vorhandenen Cluster nicht mehr benötigen, löschen Sie ihn.
-
Bewährte Methoden: GPU-Zustandsprüfungen
Die integrierte GPU-Zustandsprüfung
Die integrierte GPU-Integritätsprüfung (HealthChecks/Gpu/Enabled) ist ausgeschaltet, sofern Sie sie nicht aktivieren. Wenn diese Option aktiviert ist, führt sie als Teil des Prologs eine NVIDIA DCGM Level-2-Diagnose auf den GPUs des Knotens durch. Slurm Da die Diagnose im Prolog ausgeführt wird und ein Job erst gestartet werden kann, wenn der Prolog abgeschlossen ist, eignet sich dieses Design für Instance-Typen, bei denen die Diagnose schnell abgeschlossen wird.
Die integrierte Prüfung ist nur bei ausschließlicher Auftragszuweisung (ein Job pro Knoten) zuverlässig. Auf Knoten, die von mehreren Jobs gemeinsam genutzt werden, kann sie die Ausführung von Jobs stören und fehlerfreie Knoten belasten. Aktivieren Sie sie daher nur in Warteschlangen mit. JobExclusiveAllocation: true
Darüber hinaus dauert die Diagnose bei den GPU-Instance-Familien P6 und P6e (z. B. p6-b200 undp6-b300) und späteren P-family GPU-Instance-Generationen so lange, dass sie nicht im Prolog ausgeführt werden sollte: Sie überschreitet in der Regel die Zeitlimits des Slurm Prologs und führt dazu, dass gesunde Knoten entladen werden und Jobs erneut in die Warteschlange gestellt werden. Lassen Sie bei diesen Instance-Typen die GPU-Zustandsprüfung deaktiviert (). HealthChecks/Gpu/Enabled: false
Optionen für die Durchführung Ihrer eigenen GPU-Zustandsprüfungen
Um GPU-Zustandsprüfungen auf diesen Instances durchzuführen, wählen Sie eine der folgenden Methoden. Passen Sie jede Prüfung dem Zeitpunkt an, zu dem sie ausgeführt wird — beim Start des Knotens, vor einem Job oder nach einem Job. Dies folgt dem NVIDIA-Modell für GPU-Zustand und Diagnose (siehe NVIDIA DCGM-Status und Diagnosedcgmi diag Diagnose wird von Stufe zu Stufe intensiver und dauert länger (siehe DCGM-Diagnose
Wichtig
Führen Sie auf einem Knoten, der von mehreren Jobs gemeinsam genutzt wird, alle dcgmi diag Diagnosen (von Level-1 bis Level-4) nur aus, wenn kein anderer Job den Knoten verwendet. Andernfalls kann es zu einem Ausfall und zur Entleerung des Knotens kommen.
-
Überprüfen Sie dies beim Start des Knotens. Verwenden Sie dies, um einen Knoten einmal zu validieren, wenn er dem Cluster beitritt, bevor er die Arbeit annimmt. Da noch kein Job ausgeführt wird, kann er einen Tiefpunkt erreichen. Beachten Sie
dcgmi diag, dass nur Fehler erfasst werden, die beim Start auftreten, und keine Beeinträchtigungen, die später auftreten. Installieren Sie Ihren Check und rufen Sie ihn mit einerOnNodeConfiguredbenutzerdefinierten Aktion auf. Siehe Benutzerdefinierte Bootstrap-Aktionen. -
Checken Sie den Prolog ein. Verwenden Sie dies, um vor jedem Job schnell einsatzbereit zu sein. Da das Prolog bei jedem Job ausgeführt wird und den Start des Jobs bis zum Abschluss blockiert, sollten Sie die Prüfung auf einige Sekunden beschränken. Zum Beispiel
nvidia-smi(optional mit einem Kernel-Log-Scan auf NVIDIA Xid-Fehler) oder Level-1. dcgmi diagSiehe Slurm und prolog epilog. -
Schauen Sie im Nachwort nach. Verwenden Sie dies, um einen Knoten nach Abschluss eines Jobs zu validieren. Zum Beispiel, um eine eingehendere Prüfung durchzuführen, wenn ein Job fehlschlägt, oder um eine GPU abzufangen, die während einer Ausführung heruntergefahren ist, bevor der nächste Job geplant wird. Es kann noch tiefer gehen
dcgmi diag. Um zu vermeiden, dass nach jedem Auftrag eine Überprüfung durchgeführt wird, sollten Sie eine Level-2-Diagnose nur ausführen, wenn der Auftrag fehlschlägt. Siehe Slurm und prolog epilog.
Anmerkung
AWS ParallelCluster ersetzt entleerte oder ausgefallene statische Knoten (und beendet dynamische Knoten). Wenn ein Knoten mit einem bestätigten Fehler entleert wird, wird er ersetzt.