Subsystem B ([ITO-B](https: //www.cc.kyushu-u.) Von Spacon ITO ac.jp/scp/system/ITO/01_intro.html)) ist mit einer GPU ausgestattet. Ich werde vorstellen, wie TensorFlow auf ITO-B ausgeführt wird. Für die Verwendung der GPU ist eine Stapelverarbeitung erforderlich. Daher sollte es als Python-Code ausgeführt werden, nicht als Jupyter. Das Verfahren zum Ausführen von TensorFlow am Frontend von Spacon ITO wurde in [diesem Artikel] eingeführt (https://qiita.com/jsasaki/items/07b6f6630653eae4ee4f). Das Verfahren hat viel mit dem Frontend gemeinsam, aber die Stapelverarbeitung mit ITO-B ist einfacher. ** Alle folgenden Schritte werden am Anmeldeknoten von Spacon ITO ausgeführt. ** **.
Es wird davon ausgegangen, dass die Python-Basisumgebung mit Miniconda erstellt wurde. Erstellen Sie eine virtuelle Umgebung mit "Anaconda Channel" und installieren Sie das "Tensorflow-GPU" -Paket mit "Anaconda Channel". Den Hintergrund finden Sie in diesem Artikel. Bereiten Sie mit der in [diesem Artikel] vorbereiteten Miniconda (https://qiita.com/jsasaki/items/c807e155753468a0cfbc) eine neue virtuelle Umgebung vor und fahren Sie mit den Installationsarbeiten fort.
$ conda create -c anaconda -n tf
$ conda activate tf
$ conda install -c anaconda tensorflow-gpu
Da die GPU am Anmeldeknoten nicht verwendet werden kann, kann der Betrieb zu diesem Zeitpunkt nicht bestätigt werden.
Informationen zur Stapelverarbeitung finden Sie auf der offiziellen Website. Erstellen Sie ein Bash-Skript, das die Umgebung für das Laden der GPU und die Ausführung von Python-Code enthält. Das folgende ist das Bash-Skript "ito_b.sh", wenn eine GPU verwendet wird. Der Teil nach dem Pfeil ←
ist ein Kommentar, also löschen Sie ihn tatsächlich. Die Ressourcengruppe wird unter Bezugnahme auf die offizielle Website festgelegt.
ito_b.sh
#!/bin/bash
#PJM -L "rscunit=ito-b" ← ITO-Geben Sie B an
#PJM -L "rscgrp=ito-g-1"← Spezifikation der Ressourcengruppe
#PJM -L "vnode=1"← Geben Sie die Anzahl der zu verwendenden Knoten an
#PJM -L "vnode-core=9"← Geben Sie die Anzahl der Kerne pro Knoten an
#PJM -L "elapse=12:00:00"← Geben Sie die maximale Berechnungszeit an (geben Sie 12 Stunden an).
#PJM -X ← Angabe, die Umgebungsvariable des Anmeldeknotens auch bei der Stapelverarbeitung zu erben
source ~/.bashrc #← Miniconda legt die Python-Einstellungen fest.Ich schreibe an bashrc und lese dies
module load cuda/10.1 #← CUDA 10, weil es GPU verwendet.Laden Sie 1
module list #← Bestätigen Sie, dass CUDA geladen ist
conda activate tf #← Geben Sie die virtuelle Umgebung tf ein
conda info -e #← Bestätigen Sie, dass Sie die virtuelle Umgebung tf betreten haben
python ann_experiments.py #← Python-Code ausführen
conda deactivate #← Verlassen Sie die virtuelle Umgebung
Da die Stapelverarbeitung die Umgebung des Anmeldeknotens (außer Umgebungsvariablen) nicht erbt, muss eine GPU-Lade- und Python-Umgebung erstellt werden. Es ist nicht erforderlich, die virtuelle tf-Umgebung am Anmeldeknoten einzugeben. In diesem Beispiel wird davon ausgegangen, dass sich der Python-Code und ito_b.sh
im selben Verzeichnis befinden.
Fügen Sie das erstellte Stapelverarbeitungsskript "ito_b.sh" als Stapeljob in das Stapelverarbeitungssystem ein.
$ pjsub ito_b.sh
Sie müssen lediglich warten, bis der Vorgang abgeschlossen ist, damit Sie sich abmelden können. Gehen Sie wie folgt vor, um den Status des Jobs zu überprüfen.
$ pjstat
Wenn der Stapeljob beendet ist, werden die Standardausgabe und die Standardfehlerausgabe mit Dateinamen wie "ito_b.sh.o0000000" bzw. "ito_b.sh.e0000000" ausgegeben. Der Dateiname besteht aus o oder e und einer 7-stelligen Nummer zusätzlich zum Namen des Stapelverarbeitungsskripts. Achten Sie darauf, dass die Standardausgabedatei nicht zu groß wird.
Recommended Posts