Wiss. Rechnen » GPUs
 

Achtung: Diese Seite beschäftigt sich mit dem OMNI-Cluster! Unsere anderen Systeme vefügen nicht über GPUs.


Graphical Processing Units (GPUs) sind spezialisierte Prozessoren, die mit ihren massiv parallele Architekturen bestimmte Operationen schneller ausführen können als CPUs. Man spricht deshalb auch von Beschleunigern (von denen GPUs nur eine Untergruppe sind). Der OMNI-Cluster verfügt über 10 Knoten mit insgesamt 24 GPUs vom Typ NVIDIA Tesla V100.

Damit ein Programm die GPUs nutzen kann, müssen geeignete Programmteile mit Hilfe entsprechender Bibliotheken (z.B. CUDA, OpenACC, OpenCL, OpenMP) erweitert werden.

Auf dieser Seite beschreiben wir, wie Sie für Ihre Jobs GPU-Knoten anfordern können. Außerdem ist beschrieben, welche Softwarebibliotheken zur Verfügung stehen, um Software für GPUs zu programmieren und wie Sie diese Bibliotheken einbinden.

Anfordern von GPU-Knoten auf OMNI

Um einen Knoten mit GPUs anzufordern, muss im Job-Skript die Queue (Partition) gpu angegeben werden. Zusätzlich muss auch die genaue Anzahl von benötigten GPUs über die Option --gres=gpu:<Anzahl> spezifiziert werden.

Die 24 GPUs auf dem OMNI-Cluster sind wie folgt auf die 10 GPU Knoten verteilt:

node #GPUs
gpu-node[001-003] 4
gpu-node[005-008] 1
gpu-node[009-010] 2

Beispiel Job-Skript-Header:

#!/bin/bash
#SBATCH --time=0:30:00
#SBATCH --nodes=1
#SBATCH --tasks-per-node=2
#SBATCH --partition=gpu
#SBATCH --gres=gpu:2
...

GPU-Programmierung auf OMNI

Wird noch ergänzt.

Aktualisiert um 15:19 am 8. Februar 2021 von Jan Steiner