GPU-Erweiterungen

Die folgenden Erweiterungen wirken sich auf die GPU-Unterstützung von LSF aus.

CUDA_VISIBLE_DEVICES für MPS-Jobs inaktivieren

In LSF können Sie jetzt die Umgebungsvariable CUDA_VISIBLE_DEVICES für MPS-Jobs inaktivieren.

Wenn die Umgebungsvariable CUDA_VISIBLE_DEVICES inaktiviert ist, legt LSF die CUDA_VISIBLE_DEVICES<number> -Umgebungsvariablen für Tasks nicht fest. Daher legt LSF MPI nicht CUDA_VISIBLE_DEVICES für die Tasks fest. LSF legt nur die CUDA_VISIBLE_DEVICES<number> -Umgebungsvariablen für Tasks fest, nicht CUDA_VISIBLE_DEVICES. LSF MPI konvertiert die CUDA_VISIBLE_DEVICES<number> -Umgebungsvariablen in CUDA_VISIBLE_DEVICES und legt dies für die Tasks fest.

LSF verwendet die Umgebungsvariable CUDA_VISIBLE_DEVICES , um Benutzeranwendungen mitzuteilen, welche GPUs zugeordnet sind, und um nur diese GPUs für diese Anwendung sichtbar zu machen. Fügen Sie zum Inaktivieren von CUDA_VISIBLE_DEVICES für MPS-Jobs das Schlüsselwort ",nocvd" zum vorhandenen Wert mps in der Zeichenfolge für den GPU-Ressourcenbedarf hinzu (d. h. die Befehlsoption bsub -gpu , den Parameter LSB_GPU_REQ in der Datei lsf.conf und den Parameter GPU_REQ in den Dateien lsb.queues und lsb.applications ). Geben Sie mps=yes,nocvd oder mps=yes,shared,nocvd in den GPU-Anforderungen an, um CUDA_VISIBLE_DEVICES in MPS-Jobs zu inaktivieren.

LSB_GPU_NEW_SYNTAX=extend muss in der Datei lsf.conf definiert sein, um mit MPS-Jobs arbeiten zu können.

Blockverteilung zugeordneter GPUs

LSF ermöglicht Ihnen jetzt, die Blockverteilung zugeordneter GPUs zu aktivieren. Dies bedeutet, dass LSF die zugeordneten GPUs eines Jobs als Blöcke verteilen kann, wenn die Anzahl der Tasks größer als die angeforderte Anzahl ist.

Wenn ein GPU-Job beispielsweise die Ausführung auf einem Host mit 4 GPUs und 40 Tasks anfordert, ordnet die Blockverteilung GPU0 für die Ränge 0-9, GPU1 für die Ränge 10-19, GPU2 für die Tanks 20-29 und GPU3 für die Ränge 30-39 zu.

Um die Blockverteilung zugeordneter GPUs zu aktivieren, geben Sie block=yes in der Zeichenfolge für den GPU-Ressourcenbedarf an (d. h. die Befehlsoption bsub -gpu , den Parameter LSB_GPU_REQ in der Datei lsf.conf und den Parameter GPU_REQ in den Dateien lsb.queues und lsb.applications ).

LSB_GPU_NEW_SYNTAX=extend muss in der Datei lsf.conf definiert sein, um die Blockverteilung zugeordneter GPUs zu aktivieren.

Pack-Terminierung für Jobs im gemeinsam genutzten GPU-Modus

Mit LSF können Sie jetzt die Packzeitplanung für GPU-Jobs im Modus für gemeinsame Nutzung aktivieren.

LSF packt mehrere GPU-Jobs im Modus für gemeinsame Nutzung auf zugeordnete GPUs. Wenn diese Option aktiviert ist, packt LSF mehrere GPU-Jobs im Modus für gemeinsame Nutzung auf zugeordnete GPUs. LSF plant GPUs im Modus für gemeinsame Nutzung wie folgt:

  1. LSF sortiert die Kandidatenhosts (von der größten bis zur kleinsten) basierend auf der Anzahl gemeinsam genutzter GPUs, die bereits über aktive Jobs verfügen, und anschließend nach der Anzahl der GPUs, die nicht exklusiv sind.

    Wenn das Schlüsselwort order [] in der Ressourcenanforderungszeichenfolge definiert ist, sortiert LSF nach der Sortierung von order []die Kandidatenhosts nach der gpack -Richtlinie (zuerst nach gemeinsam genutzten GPUs, die bereits aktive Jobs haben, und dann nach der Anzahl der GPUs, die nicht exklusiv sind) erneut. Die Sortierpriorität der gpack -Richtlinie ist höher als die order [] -Sortierung.

  2. LSF sortiert die Kandidaten-GPUs auf jedem Host (von der größten bis zur kleinsten) basierend auf der Anzahl der aktiven Jobs.

Nach der Terminierung werden die GPU-Jobs im Modus für gemeinsame Nutzung auf die zugeordnete gemeinsam genutzte GPU verteilt, die zuerst sortiert wird, nicht auf eine neue gemeinsam genutzte GPU.

Bisher hat LSF neuen GPU-Jobs im gemeinsam genutzten Modus zusätzliche GPUs zugeordnet. Beispiel: Ein Host verfügt über 4 GPUs und ein GPU-Job wird auf einer GPU im Modus für gemeinsame Nutzung ausgeführt. Wenn ein anderer GPU-Job im gemeinsamen Modus für den Host terminiert wird, wird dem neuen Job eine weitere GPU zugeordnet. Daher führen zwei GPUs im Modus "Gemeinsam genutzt" zwei Jobs im Modus "Gemeinsam genutzt" aus. Wenn die Pack-Zeitplanung aktiviert ist, ordnet LSF eine GPU im Modus für gemeinsame Nutzung zu, um beide Jobs im Modus für gemeinsame Nutzung auszuführen, wenn diese GPU zuerst sortiert wird.

Um die Packzeitplanung für GPU-Jobs im gemeinsamen Modus zu aktivieren, geben Sie gpack=yes in der Zeichenfolge für den GPU-Ressourcenbedarf an (d. h. die Befehlsoption bsub -gpu , den Parameter LSB_GPU_REQ in der Datei lsf.conf und den Parameter GPU_REQ in den Dateien lsb.queues und lsb.applications ).

LSB_GPU_NEW_SYNTAX=extend muss in der Datei lsf.conf definiert sein, um die Packterminierung von GPU-Jobs im Modus für gemeinsame Nutzung zu aktivieren.

NVIDIA Integration Updates

LSF, 10.1, integriert in NVIDIA (DCGM), um effektiver mit GPUs im LSF -Cluster zu arbeiten. LSF jetzt in 1.7.2 NVIDIA integriert.

Aktivieren Sie die DCGM-Integration, indem Sie den Parameter LSF_DCGM_PORT in der Datei lsf.conf definieren.