Verwenden von Apptainer/Singularity

Übersicht

Apptainer/Singularity-Container sind ein Tool zum Verpacken von Anwendungen und deren reproduzierbarer Ausführung auf verschiedenen Hostsystemen. Singularity kann die meisten Docker-Container problemlos importieren und lässt sich problemlos als Benutzeranwendung bereitstellen, die ohne Administratorrechte ausgeführt werden kann.

Um Apptainer auf Rescale verwenden zu können, müssen Bilddateien (*.sif) vorab mithilfe einer Apptainer/Singularity-Build-Umgebung erstellt werden. Informationen hierzu finden Sie in der Apptainer-Kurzanleitung: https://apptainer.org/user-docs/master/quick_start.html.

Nach der Erstellung erstellen Sie einen neuen Job und wählen Sie die Bringen Sie Ihre eigene Einzigartigkeit mit Container Software-Kachel.

25 Bild

Apptainer/Singularity im Basic/DOE-Modus

Apptainer, die im Basic- oder DOE-Modus von Rescale ausgeführt werden, sollten über einen Exec-Befehl oder ein Run-Skript verfügen, das den Prozess nach Abschluss zurückgibt.

ZB Exec

singularity pull library://lolcow
singularity exec lolcow_latest.sif cowsay moo

ZB Lauf

singularity pull library://lolcow
singularity run lolcow_latest.sif

or

singularity pull library://lolcow
./lolcow_latest.sif

Apptainer/Singularität in Workstation

Wenn der Apptainer die Ausführung einer GUI unterstützt, können Sie diese Schnittstelle problemlos auf Rescales Arbeitsplatz. Rescale-Maschinenbilder enthalten ein X-Windows Server die von Apptainer/Singularity über die xhost Befehl. 

Um eine GUI von Apptainer zu starten, führen Sie die xhost + Befehl vor dem Befehl zum Starten der Apptainer/Singularity-Anwendung.

xhost +
singularity exec <my_gui_application.sif> <path to gui command>

Zusätzliche Bemerkungen

Ab Version 2.3 unterstützt Singularity die Ausführung von Containern, die auch GPUs Ausführen von CUDA-Anwendungen, was es zu einer nützlichen Wahl für die Ausführung verpackter Deep-Learning-Jobs macht.

singularity exec --nv docker://rescale/tf-cnn-benchmarks:1.3.0 python /tf_cnn_benchmarks/tf_cnn_benchmarks.py --model resnet50 --batch_size 
64 --gpus

Das Flag „–nv“ in der obigen Befehlszeile weist Singularity an, die Host-GPU-Schnittstelle zum Container zu nutzen, sodass CUDA-Anwendungen darin ausgeführt werden können. In diesem Beispiel wird Folgendes ausgeführt: TensorFlow CNN-Benchmarks in einem Container auf einer oder mehreren GPUs.