Sous-système B ([ITO-B](https: //www.cc.kyushu-u.) De Spacon ITO ac.jp/scp/system/ITO/01_intro.html)) est équipé d'un GPU. Je vais vous présenter comment exécuter TensorFlow sur ITO-B. Le traitement par lots est nécessaire pour utiliser le GPU. Par conséquent, il doit être exécuté en tant que code Python, pas Jupyter. La procédure d'exécution de TensorFlow sur le frontal de Spacon ITO a été présentée dans cet article. La procédure a beaucoup en commun avec le frontal, mais le traitement par lots avec ITO-B est plus facile. ** Toutes les étapes suivantes sont effectuées au niveau du nœud de connexion de Spacon ITO. ** **
On suppose que l'environnement de base Python est construit avec Miniconda. Construisez un environnement virtuel avec ʻanaconda channelet installez le paquet
tensorflow-gpu avec ʻanaconda channel
. Veuillez vous référer à cet article pour le contexte.
À l'aide de la Miniconda préparée dans cet article, préparez un nouvel environnement virtuel tf et poursuivez le travail d'installation.
$ conda create -c anaconda -n tf
$ conda activate tf
$ conda install -c anaconda tensorflow-gpu
Étant donné que le GPU ne peut pas être utilisé au nœud de connexion, l'opération ne peut pas être confirmée à ce stade.
Veuillez vous référer au Site officiel pour le traitement par lots. Créez un script bash qui inclut l'environnement pour le chargement du GPU et comment exécuter du code Python. Ce qui suit est le script bash ʻito_b.sh` lors de l'utilisation d'un GPU. La partie après la flèche «←» est un commentaire, supprimez-la donc. Le groupe de ressources est déterminé en se référant au Site officiel.
ito_b.sh
#!/bin/bash
#PJM -L "rscunit=ito-b" ← ITO-Spécifiez B
#PJM -L "rscgrp=ito-g-1"← Spécification du groupe de ressources
#PJM -L "vnode=1"← Spécifiez le nombre de nœuds à utiliser
#PJM -L "vnode-core=9"← Spécifiez le nombre de cœurs par nœud
#PJM -L "elapse=12:00:00"← Spécifiez le temps de calcul maximum (spécifiez 12 heures)
#PJM -X ← Spécification pour hériter de la variable d'environnement du nœud de connexion même en traitement par lots
source ~/.bashrc #← Miniconda définit les paramètres Python.J'écris pour bashrc et je lis ceci
module load cuda/10.1 #← CUDA 10 car il utilise GPU.Charger 1
module list #← Confirmez que CUDA est chargé
conda activate tf #← Entrez dans l'environnement virtuel tf
conda info -e #← Confirmez que vous êtes entré dans l'environnement virtuel tf
python ann_experiments.py #← Exécuter du code Python
conda deactivate #← Quitter l'environnement virtuel
Étant donné que le traitement par lots n'hérite pas de l'environnement du nœud de connexion (autre que les variables d'environnement), il est nécessaire de créer une charge GPU et un environnement Python. Il n'est pas nécessaire d'entrer dans l'environnement virtuel tf au niveau du nœud de connexion. Cet exemple suppose que le code Python et ʻito_b.sh` sont dans le même répertoire.
Placez le script de traitement par lots créé ʻito_b.sh` dans le système de traitement par lots en tant que travail par lots.
$ pjsub ito_b.sh
Tout ce que vous avez à faire est d'attendre la fin du processus pour pouvoir vous déconnecter. Pour vérifier l'état du travail, procédez comme suit.
$ pjstat
Lorsque le travail par lots est terminé, la sortie standard et la sortie d'erreur standard sont affichées avec des noms de fichier tels que ʻito_b.sh.o0000000 et ʻito_b.sh.e0000000
, respectivement. Le nom de fichier se compose de o ou e et d'un nombre à 7 chiffres en plus du nom du script de traitement par lots. Veillez à ne pas rendre le fichier de sortie standard trop volumineux.
Recommended Posts