View a markdown version of this page

Konfiguration benutzerdefinierter GRES-Einstellungen in AWS 5 STCK - AWS STCK

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.

Konfiguration benutzerdefinierter GRES-Einstellungen in AWS 5 STCK

Slurm verwendet gres.conf um generische Ressourcen (GRES) wie GPUs zu verwalten, Multi-Process Service (MPS) und Multi-Instance GPU-Geräte (MIG) auf Rechenknoten. AWS Mit PCS können Sie Folgendes anpassen gres.conf durch die gresCustomSettings Eigentum von slurmConfiguration während der Erstellung oder Aktualisierung der Compute-Knotengruppe.

Im Gegensatz zu anderen benutzerdefinierten Einstellungen, bei denen es sich um eine einfache Liste von Parameter- und Wertepaaren handelt, gresCustomSettings ist eine Liste von Aufzeichnungen. Jeder Datensatz ist ein Satz von gres.conf Attribute, die ein GRES-Gerät oder eine GRES-Ressource beschreiben. Zum Beispiel der Datensatz Name=gpu Type=a100 File=/dev/nvidia[0-7] deklariert acht A100-GPUs.

In Slurma, ein gres.conf Der Datensatz gilt für jeden Knoten im Cluster, es sei denn, er gibt einen an NodeName= Präfix. AWS PCS fügt immer das hinzu NodeName= Präfix für die Rechenknotengruppe, Sie geben es also nicht an, und jeder Datensatz, den Sie angeben, gilt nur für diese Rechenknotengruppe. AWS PCS unterstützt keine clusterweite gres.conf Aufzeichnungen.

Konfiguration der gres.conf-Einstellungen

gres.conf benutzerdefinierte Einstellungen können über das konfiguriert werden AWS Konsole, CLI oder SDKs während der Erstellung der Compute-Knotengruppe oder später durch Aktualisierungsvorgänge geändert.

AWS-Managementkonsole

Navigieren Sie zu Zusätzliche Scheduler-Einstellungen auf der Seite „Erstellen oder Bearbeiten“ für eine Compute-Knotengruppen-Ressource. Geben Sie eins ein gres.conf Datensatz pro Zeile, nativ gres.conf Formular (zum Beispiel Name=gpu Type=a100 File=/dev/nvidia[0-7]).

AWS CLI

Für die programmatische Verwaltung von gres.conf Einstellungen, verwenden Sie die gresCustomSettings Feld in Operationen zum Erstellen oder Aktualisieren von Rechenknotengruppen. Jedes Element der Liste ist eins gres.conf aufzeichnen.

Beispiel— Deklarieren von GPU-Geräten in einer Rechenknotengruppe
aws pcs update-compute-node-group \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng-1 \ --slurm-configuration \ 'gresCustomSettings=[{Name=gpu,Type=a100,File=/dev/nvidia[0-7]}]'

Unterstützte gres.conf-Einstellungen für Compute-Knotengruppen

Folgendes gres.conf Attribute werden in jedem Datensatz auf Gruppenebene des Rechenknotens unterstützt:

Die Bedeutung und die akzeptierten Werte der einzelnen Attribute finden Sie im Slurm gres.conf Dokumentation. AWS PCS validiert Ihre Aufzeichnungen anhand derselben Regeln, die Slurm anwendet. Insbesondere muss jeder Datensatz entweder einen deklarieren Name oder ein aktives AutoDetect Wert und ein GPU-Datensatz (Name=gpu) muss Folgendes angeben File oder MultipleFiles es sei denn, ein aktiver AutoDetect Der Wert ermittelt die Geräte.

Ein aktiv AutoDetect Wert ist ein beliebiger Wert, der die Erkennung aktiviert, z. B. nvml oder full. AutoDetect=off schaltet die Erkennung aus, sodass es sich nicht um einen aktiven Wert handelt und in einem Datensatz nicht eigenständig verwendet werden kann.

Wie AWS PCS wendet Ihre gres.conf-Datensätze an

Eine GRES-Konfiguration erscheint an zwei Stellen in der Slurm-Konfiguration und AWS PCS schreibt beide:

  • Die gres.conf Aufzeichnungen, die Sie einreichen gresCustomSettings beschreiben Sie die Geräte, die auf dem Knoten vorhanden sind.

  • Die Gres Einsetzen slurm.conf deklariert, was der Scheduler zuweisen kann, in der folgenden Form name[:type]:count. Sie geben es als benutzerdefinierte Slurm-Einstellung für die Compute-Knotengruppe an, in slurmCustomSettings. Weitere Informationen finden Sie unter Benutzerdefinierte Slurm-Einstellungen für AWS PCS berechnet Knotengruppen.

AWS PCS rendert Ihre Aufzeichnungen in gres.conf und gleicht sie mit der GRES-Konfiguration ab, die es verwaltet:

  • Jeder GPU-Datensatz, den Sie deklarieren, ersetzt den Standard-GPU-Datensatz AWS PCS generiert für die Compute-Knotengruppe. Ein GPU-Datensatz ist ein Datensatz, der Folgendes angibt Name=gpu oder ein AutoDetect Attribut.

  • Datensätze für andere Ressourcen, wie mps, shard, oder ein eigener Ressourcenname, werden neben dem hinzugefügt AWS PCS-Standardwerte.

  • AWS PCS leitet den ab GresTypes Einstellung und die gres/* Einträge des AccountingStorageTRES Einsetzen slurm.conf aus dem Gres Einstellung.

In Slurm-Version 26.05 und höher AWS PCS-Sätze AutoDetect=full standardmäßig auf GPU-Compute-Knotengruppen, wenn das Socket-Layout des Knotens bekannt ist, entweder weil Sie Sockets in slurmCustomSettings für die Compute-Knotengruppe, oder weil AWS PCS hat die CPU-Topologie automatisch erkannt. Wenn das Socket-Layout nicht verfügbar ist, AWS PCS gibt seinen GPU-Datensatz ohne AutoDetect stattdessen.

Einschränkungen zwischen gres.conf und der Gres-Einstellung

Slurm benötigt beide Seiten der GRES-Konfiguration, um eine Ressource zu planen, und eine Ressource, die nur in einer von ihnen vorkommt, funktioniert nicht. Ein Eintrag in der Gres Einsetzen slurm.conf ohne gres.conf Ein Datensatz dahinter sorgt dafür, dass der Knoten weniger Ressourcen meldet als konfiguriert sind, und der Knoten wird leer. Ein Datensatz ohne Gres Nach einem Eintrag ist das Gerät zwar auf dem Knoten vorhanden, kann aber nicht geplant werden.

AWS PCS validiert die beiden miteinander, wenn Sie eine Rechenknotengruppe erstellen oder aktualisieren, und lehnt die Anfrage in den folgenden Fällen ab:

  • A slurm.conf Gres Ein Eintrag benennt eine Ressource, die nein gres.conf Datensatz deklariert. Das beinhaltet gpu: ein gpu Der Eintrag erfordert einen GPU-Datensatz in gresCustomSettings, auch wenn die Anzahl 0.

  • EIN slurm.conf Gres Ein Eintrag deklariert eine höhere Anzahl einer Ressource als gres.conf Datensätze deklarieren. Eine niedrigere Anzahl ist zulässig, bis auf 0: der gres.conf Datensätze beschreiben die Geräte, die auf dem Knoten vorhanden sind, während Gres gibt an, wie viele davon der Scheduler zuweisen kann.

  • EIN slurm.conf Gres Ein Eintrag gibt einen GPU-Typ an, in dem kein GPU-Datensatz gespeichert ist gres.conf deklariert.

Die letzten beiden Prüfungen hängen davon ab, was Ihre Datensätze deklarieren. AWS PCS kann Geräte nicht zählen, die Slurm beim Booten des Nodes entdeckt, also ein Datensatz, der nur aktiviert AutoDetect akzeptiert alle gpu zählen Sie und geben Sie das ein Gres Eintrag. So bestehen MIG-Profile die Validierung. AWS PCS überspringt auch die Zählprüfung für gemeinsam genutztes GRES (mps und shard) und überspringt die Typprüfung, wenn ein GPU-Datensatz nein deklariert Type.

AWS PCS akzeptiert einen Datensatz, für den es keine Übereinstimmung gibt Gres Eintrag. Die Ressource ist auf dem Knoten vorhanden, aber Jobs können sie nicht anfordern. Fügen Sie das hinzu Gres Eintrag, um es planbar zu machen.

Wichtig

AWS PCS validiert die Syntax Ihrer Datensätze und deren Konsistenz mit Gres Einstellung. Sie werden nicht anhand der Hardware validiert. Ein Rekord, dessen File, Cores, oder Links Das Layout stimmt nicht mit den Geräten auf dem gestarteten Knoten überein, wodurch der Knoten überlastet wird. Das Gleiche gilt für MIG: die Profile, in denen Sie deklarieren Gres muss mit den auf dem Knoten konfigurierten Profilen übereinstimmen. Weitere Hinweise zur Diagnose eines überlasteten Knotens finden Sie unter Beheben Sie Fehler bei ungültigen Knotenregistrierungen (INVALID_REG) in AWS STCK.