J'ai utilisé le spacon «ABCI» équipé de GPU d'AIST jusqu'à la fin de l'année dernière, donc un mémo à ce moment-là. Surtout pour ceux qui veulent exécuter l'environnement virtuel d'Anaconda avec le nœud de calcul ABCI **, veuillez vous y référer.
Pour Windows, il est préférable d'utiliser Windows Powershell, Powershell ou WSL à partir du terminal Windows. J'utilisais Windows Terminal + WSL.
shell-window-1
$ ssh -i ./your_rsa_key -L 10022:es:22 -l $YOUR_ABCI_ID as.abci.ai
Si vous entrez le mot de passe correct, vous obtiendrez le message suivant
shell-window-1
Welcome to ABCI access server.
Please press any key if you disconnect this session.
Gardez ce ** shell-window-1 ** tel quel. Tout en le gardant, ouvrez une autre fenêtre et entrez ce qui suit.
shell-window-2
$ ssh -i ./your_rsa_key -p 10022 -l $YOUR_ABCI_ID localhost
Après avoir entré le mot de passe correct, si le message suivant apparaît, la connexion est réussie.
shell-window-2
--------------------------------------------------------------------------------
ABCI Information Date: Oct 04, 2019
--------------------------------------------------------------------------------
Welcome to ABCI system
- How to use
Please see below for ABCI Users Guide:
- https://docs.abci.ai/en/ (In English)
- https://docs.abci.ai/ja/ (In Japanese)
If you have any questions or need for further assistance,
please refer to the following URL and contact us:
- https://abci.ai/en/how_to_use/user_support.html (In English)
- https://abci.ai/ja/how_to_use/user_support.html (In Japanese)
[xxxxxxxxxx@es1 ~]$
Si vous souhaitez créer une variable d'environnement qui ne disparaîtra pas lorsque vous vous déconnecterez, écrivez-la dans ~ / .bash_profile. Il est pratique de définir l'ID utilisateur, l'ID de groupe, l'adresse e-mail et le répertoire de groupe en tant que variables d'environnement.
shell-window-2
[xxxxxxxxxx@es1 ~]$ cat .bash_profile
# .bash_profile
## Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
## User specific environment and startup programs
export PATH=$PATH:$HOME/.local/bin:$HOME/bin
## Original
export ID_USER=xxxxxxxxxx
export ID_GROUP=xxxxxxxx
export [email protected]
export DIR_GROUP=/groups1/$ID_GROUP
Après avoir installé Anaconda, entrez la commande suivante pour activer la commande conda.
shell-window-2
[xxxxxxxxxx@es1 ~]$ export PATH=~/anaconda3/bin:$PATH
Démarrez Jupyter lab sans l'ouvrir dans le navigateur côté serveur et vérifiez l'adresse du serveur.
shell-window-2
[xxxxxxxxxx@es1 ~]$ jupyter lab --no-browser --ip=`hostname` >> jupyter.log 2>&1 &
[xxxxxxxxxx@es1 ~]$ jupyter notebook list
Currently running servers:
http://es1.abci.local:8888/?token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX :: /home/xxxxxxxxxx
Ouvrez une nouvelle fenêtre shell et portez en avant. Entrez ce qui suit et entrez le mot de passe. Ce n'est pas toujours "es1" ou "8888", veuillez donc vérifier à chaque fois avec l'adresse du serveur en cours d'exécution ci-dessus.
shell-window-3
$ ssh -L 18888:es1:8888 -l $YOUR_ABCI_ID -i ./your_rsa_key -p 10022 localhost
Tout en gardant shell-window-3 dans cet état, démarrez le navigateur du PC source de connexion et
http://localhost:18888/?token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Accès à. "token =" Veuillez copier celui affiché dans shell-window-2 ci-dessous.
Connectez-vous au nœud de calcul à l'aide de la commande qrsh
shell-window-2
[xxxxxxxxxx@es1 ~]$ qrsh -l rt_G.small=1 -g $ID_GROUP -l h_rt=00:30:00
Si le nom du nœud après @ est un nom de nœud commençant par g, cela réussit. Veuillez noter que vous serez redirigé vers le répertoire personnel où que vous soyez sur le nœud interactif
shell-window-2
[xxxxxxxxxx@g0001 ~]$
La procédure est fondamentalement la même que l'utilisation du laboratoire Jupyter avec un nœud interactif. Lors de la redirection de port, remplacez es ~ dans le nom du nœud par g ~.
Il n'est pas nécessaire de se connecter au nœud de calcul à l'avance ***.
shell-window-2
[xxxxxxxxxx@es1 ~]$ qsub -j y -cwd -l rt_G.small=1 -l h_rt=24:00:00 -g $ID_GROUP -M $EMAIL -m besa -o $DIR_LOG -e $DIR_LOG ./run.sh
Pour DIR_LOG
, spécifiez un répertoire approprié à l'avance. Si le répertoire actuel est correct
shell-window-2
[xxxxxxxxxx@es1 ~]$ export DIR_LOG=$(pwd)
Est OK.
Si vous souhaitez utiliser l'environnement virtuel créé par Anaconda, le contenu du run.sh ci-dessus doit être le suivant, par exemple:
run.sh
#!/bin/bash
## >>> conda init >>>
__conda_setup="$(CONDA_REPORT_ERRORS=false '$HOME/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "$HOME/anaconda3/etc/profile.d/conda.sh" ]; then
. "$HOME/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="$PATH:$HOME/anaconda3/bin"
fi
fi
unset __conda_setup
## <<< conda init <<<
## Activation
conda activate myenv1
##Ceci est affiché pour confirmation
conda info -e
date
hostname
##Exécuter du code Python
python main.py arg1 arg2 arg3
[Mis à jour le 22 mai 2020]
Veuillez vous référer au manuel officiel (car il est facile à comprendre) https://docs.abci.ai/ja/03/#reservation
Utilisez la commande qrsub
pour faire une réservation.
-a
: Spécifiez la date de début de la tâche au format AAAAMMJJ. Le travail débutera ** à 10h ** à la date de début. Si vous spécifiez le jour après 10 heures, vous obtiendrez une sorte d'erreur.
-d
: Spécifiez la période d'exécution du travail (jours). L'exécution sera arrêtée ** à 9h30 ** N jours après la date de début spécifiée par -a. Spécifiez -e ci-dessous ou ce -d.
-e
: Spécifiez la date et l'heure d'arrêt du travail. L'exécution sera arrêtée ** à 9h30 le jour spécifié par AAAAMMJJ. Spécifiez -d ci-dessus ou ce -e.
-N
: spécifiez le nom réservé sous forme de chaîne de caractères. Vous ne pouvez pas spécifier de nombre au début.
shell-window-2
[xxxxxxxxxx@es1 ~]$ qrsub -a 20180705 -d 7 -g grpname -n 4 -N "Reserve_for_AI"
Your advance reservation 12345 has been granted
Utilisez la commande qrdel
pour supprimer une réservation. Spécifiez l'ID émis lors de la réservation ("12345" dans l'exemple d'exécution ci-dessus) comme argument.
shell-window-2
[xxxxxxxxxx@es1 ~]$ qrdel 12345
Spécifiez l'ID émis lors de la réservation avec l'option -ar
dans la commande qsub
.
Exemple d'exécution:
shell-window-2
[xxxxxxxxxx@es1 ~]$ qsub -j y -cwd -l rt_F=1 -g $ID_GROUP -M $EMAIL -m besa -o $DIR_LOG -e $DIR_LOG -ar 12345 ./run.sh
Excusez-moi, mais je suis désolé, mais cela ne couvre pas comment utiliser ABCI parce que je viens de porter le mémo que j'ai fait pour répondre à mon objectif. Si vous avez besoin d'informations plus détaillées, veuillez vous référer aux matériaux répertoriés dans «Documents de référence».
Recommended Posts