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 verwendetgres.conf, um generische Ressourcen (GRES) wie GPUs, Multi-Process Service- (MPS) und Multi-Instance GPU-Geräte (MIG) auf Rechenknoten zu verwalten. AWS PCS ermöglicht Ihnen die Anpassung gres.conf über die gresCustomSettings Eigenschaft von slurmConfiguration während der Erstellung oder Aktualisierung von Rechenknotengruppen.

Im Gegensatz zu anderen benutzerdefinierten Einstellungen, bei denen es sich um eine einfache Liste von Parameter- und Wertepaaren gresCustomSettings handelt, handelt es sich um eine Liste von Datensätzen. Jeder Datensatz besteht aus einer Reihe von gres.conf Attributen, die ein GRES-Gerät oder eine GRES-Ressource beschreiben. Der Datensatz Name=gpu Type=a100 File=/dev/nvidia[0-7] deklariert beispielsweise acht A100-GPUs.

In Slurm gilt ein gres.conf Datensatz für jeden Knoten im Cluster, sofern kein Präfix angegeben ist. NodeName= AWS PCS fügt immer das NodeName= Präfix für die Rechenknotengruppe hinzu, sodass Sie es nicht angeben, und jeder Datensatz, den Sie angeben, gilt nur für diese Rechenknotengruppe. AWS PCS unterstützt keine clusterweiten Datensätzegres.conf.

Konfiguration der gres.conf-Einstellungen

gres.confbenutzerdefinierte Einstellungen können während der Erstellung von Compute-Knotengruppen über die AWS Konsole, CLI oder SDKs konfiguriert oder später durch Aktualisierungsvorgänge geändert werden.

AWS-Managementkonsole

Navigieren Sie auf der Seite zum Erstellen oder Bearbeiten einer Compute Node-Gruppenressource zu Zusätzliche Scheduler-Einstellungen. Geben Sie einen gres.conf Datensatz pro Zeile in systemeigener gres.conf Form ein (z. B.Name=gpu Type=a100 File=/dev/nvidia[0-7]).

AWS CLI

Verwenden Sie für die programmatische Verwaltung von gres.conf Einstellungen das gresCustomSettings Feld in den Operationen zum Erstellen oder Aktualisieren von Rechenknotengruppen. Jedes Element der Liste ist ein gres.conf Datensatz.

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

Die folgenden gres.conf Attribute werden in jedem Datensatz auf der Ebene der Compute-Knotengruppe unterstützt:

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

Ein aktiver AutoDetect Wert ist jeder Wert, der die Erkennung aktiviert, z. B. nvml oderfull. AutoDetect=offschaltet die Erkennung aus, sodass es sich nicht um einen aktiven Wert handelt und er 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 Datensätze, die Sie angeben, gresCustomSettings beschreiben die Geräte, die auf dem Knoten vorhanden sind.

  • Die Gres Einstellung in slurm.conf deklariert im Formular, was der Scheduler zuweisen kann. 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 Datensätze in der GRES-Konfiguration, die es verwaltet, gres.conf und gleicht sie mit dieser ab:

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

  • Datensätze für andere Ressourcen, z. B. mpsshard, oder ein eigener Ressourcenname, werden zu den AWS PCS-Standardwerten hinzugefügt.

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

In Slurm-Version 26.05 und höher setzt AWS PCS AutoDetect=full standardmäßig auf GPU-Rechenknotengruppen, wenn das Socket-Layout des Knotens bekannt ist, entweder weil Sie sich slurmCustomSettings für die Rechenknotengruppe Sockets angemeldet haben oder weil AWS PCS die CPU-Topologie automatisch erkannt hat. Wenn das Socket-Layout nicht verfügbar ist, gibt AWS PCS stattdessen seinen GPU-Record ohne aus. AutoDetect

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 Einstellung, hinter slurm.conf dem kein gres.conf Datensatz steht, führt dazu, dass der Knoten weniger Ressourcen meldet, als konfiguriert sind, und der Knoten wird leer. Ein Datensatz ohne Gres Eintrag führt dazu, dass das Gerät zwar auf dem Knoten vorhanden ist, aber nicht planbar ist.

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

  • Ein slurm.conf Gres Eintrag benennt eine Ressource, die kein gres.conf Datensatz deklariert. Dazu gehörtgpu: Für einen gpu Eintrag ist ein GPU-Datensatz erforderlichgresCustomSettings, auch wenn die Anzahl gleich ist0.

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

  • Ein slurm.conf Gres Eintrag gibt einen GPU-Typ an, den kein GPU-Datensatz deklariert. gres.conf

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

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

Wichtig

AWS PCS überprüft die Syntax Ihrer Datensätze und deren Übereinstimmung mit der Einstellung. Gres Es validiert sie nicht anhand der Hardware. Ein DatensatzFile, dessen,Cores, oder Links -Layout nicht mit dem der Geräte auf dem gestarteten Knoten übereinstimmt, belastet den Knoten. Das Gleiche gilt für MIG: Die Profile, in denen Sie deklarieren, Gres müssen mit den auf dem Knoten konfigurierten Profilen übereinstimmen. Weitere Hinweise zur Diagnose eines leeren Knotens finden Sie unterBeheben Sie Fehler bei ungültigen Knotenregistrierungen (INVALID_REG) in AWS STCK.