[PYTHON] Remarques sur l'utilisation d'AIST Spacon ABCI

introduction

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.

Matériaux de référence, etc.

Connectez-vous au nœud interactif

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

Utiliser Jupyter Lab avec des nœuds interactifs

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.

Utiliser des nœuds de calcul en mode à la demande

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 ~]$ 

Utiliser Jupyter Lab sur les nœuds de calcul

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

Utiliser le nœud de calcul en mode Spot

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

Utiliser le nœud de calcul en mode réservé

[Mis à jour le 22 mai 2020]

Réservation et suppression de réservation

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

Exécutez le travail avec la ressource réservée

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

en conclusion

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

Remarques sur l'utilisation d'AIST Spacon ABCI
Remarques sur la façon d'utiliser lors de la combinaison de pandas.
Résumé de l'utilisation de pandas.DataFrame.loc
Résumé de l'utilisation de pyenv-virtualenv
[Mémo] Comment utiliser Google MµG
Résumé de l'utilisation de csvkit
Comment développer dans un environnement virtuel Python [Memo]
[Python] Résumé de l'utilisation des pandas
[Mémo] Comment utiliser BeautifulSoup4 (1) Afficher html
Comment calculer Utiliser% de la commande df
[Python2.7] Résumé de l'utilisation d'unittest
Comment utiliser le notebook Jupyter avec ABCI
Comment utiliser Jupyter sur le frontal de Spacon ITO
Jupyter Notebook Principes d'utilisation
Bases de PyTorch (1) -Comment utiliser Tensor-
Résumé de l'utilisation de la liste Python
[Python2.7] Résumé de l'utilisation du sous-processus
[Question] Comment utiliser plot_surface de python
Comment calculer la volatilité d'une marque
Comment utiliser Folium (visualisation des informations de localisation)
Pas beaucoup de mention de la façon d'utiliser Pickle
Résumé de l'utilisation de MNIST avec Python
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser virtualenv
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Comment utiliser Pandas 2
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment utiliser pytest_report_header
Comment utiliser partiel
Comment utiliser Bio.Phylo
Comment utiliser SymPy
Comment utiliser x-means
Comment utiliser WikiExtractor.py
Comment utiliser IPython
Comment utiliser virtualenv
Comment utiliser Matplotlib
Comment utiliser iptables
Comment utiliser numpy
Comment utiliser TokyoTechFes2015
Comment utiliser venv
Comment utiliser le dictionnaire {}
Comment utiliser Pyenv
Comment utiliser la liste []
Comment utiliser python-kabusapi
Comment utiliser OptParse
Comment utiliser le retour
Comment utiliser pyenv-virtualenv
Comment utiliser imutils
Créer un ensemble de données d'images à utiliser pour la formation
Mémo connecté à HiveServer2 d'EMR avec python
J'ai essayé de résumer comment utiliser matplotlib de python
Un mémo pour comprendre visuellement l'axe des pandas.