[PYTHON] Ausführungsverfahren von TensorFlow bei der Stapelverarbeitung von Spacon ITO

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. ** **.

Installieren Sie TensorFlow

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.

Erstellen eines Stapelverarbeitungsskripts

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.

Übermittlung des Batch-Jobs

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

Ausführungsverfahren von TensorFlow bei der Stapelverarbeitung von Spacon ITO
Zusammenfassung verschiedener Operationen in Tensorflow
Notizen zur Stapelverarbeitung in IPython Notebook
Status jedes Python-Verarbeitungssystems im Jahr 2020
[Ansible Installationsverfahren] Von der Installation bis zur Ausführung des Playbooks
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
Erstellungsprozedur für TensorFlow 2.2.0-rc0 (CUDA10.2 + cuDNN7.6.5) --Windows10
Das Checkpoint-Format von tf.train.Saver wurde in TensorFlow v0.12 geändert
Unerträgliche Aufmerksamkeitsmangel bei der Verarbeitung natürlicher Sprache