[PYTHON] Hinweise zur Verwendung von AIST Spacon ABCI

Einführung

Ich habe bis Ende letzten Jahres den mit GPU ausgestatteten Spacon "ABCI" von AIST verwendet, also ein Memo zu dieser Zeit. Insbesondere für diejenigen, die die virtuelle Umgebung von Anaconda mit dem ABCI-Rechenknoten ** ausführen möchten, lesen Sie bitte diese.

Referenzmaterialien usw.

Melden Sie sich beim interaktiven Knoten an

Für Windows ist es besser, Windows Powershell, Powershell oder WSL vom Windows Terminal aus zu verwenden. Ich habe Windows Terminal + WSL verwendet.

shell-window-1


$ ssh -i ./your_rsa_key -L 10022:es:22 -l $YOUR_ABCI_ID as.abci.ai

Wenn Sie das richtige Passwort eingeben, wird die folgende Meldung angezeigt

shell-window-1


Welcome to ABCI access server.
Please press any key if you disconnect this session.

Behalten Sie dieses ** Shell-Fenster-1 ** bei. Öffnen Sie unter Beibehaltung ein weiteres Fenster und geben Sie Folgendes ein.

shell-window-2


$ ssh -i ./your_rsa_key -p 10022 -l $YOUR_ABCI_ID localhost

Wenn nach Eingabe des richtigen Passworts die folgende Meldung angezeigt wird, ist die Anmeldung erfolgreich.

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

Wenn Sie eine Umgebungsvariable erstellen möchten, die beim Abmelden nicht verschwindet, schreiben Sie sie in ~ / .bash_profile. Es ist praktisch, die Benutzer-ID, die Gruppen-ID, die E-Mail-Adresse und das Gruppenverzeichnis als Umgebungsvariablen festzulegen.

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

Geben Sie nach der Installation von Anaconda den folgenden Befehl ein, um den Befehl conda zu aktivieren.

shell-window-2


[xxxxxxxxxx@es1 ~]$ export PATH=~/anaconda3/bin:$PATH

Verwenden Sie Jupyter Lab mit interaktiven Knoten

Starten Sie Jupyter Lab, ohne es im Browser auf der Serverseite zu öffnen, und überprüfen Sie die Adresse des Servers.

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

Öffnen Sie ein neues Shell-Fenster und portieren Sie vorwärts. Geben Sie Folgendes ein und geben Sie das Passwort ein. Es ist nicht immer "es1" oder "8888". Überprüfen Sie daher jedes Mal die oben angegebene Adresse des laufenden Servers.

shell-window-3


$ ssh -L 18888:es1:8888 -l $YOUR_ABCI_ID -i ./your_rsa_key -p 10022 localhost

Während Sie Shell-Window-3 in diesem Zustand halten, starten Sie den Browser des Login-Quell-PCs und

http://localhost:18888/?token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Zugriff auf. "token =" Bitte kopieren Sie die in Shell-Fenster-2 unten angezeigte.

Verwenden Sie den Rechenknoten im On-Demand-Modus

Melden Sie sich mit dem Befehl qrsh an, um den Knoten zu berechnen

shell-window-2


[xxxxxxxxxx@es1 ~]$ qrsh -l rt_G.small=1 -g $ID_GROUP -l h_rt=00:30:00

Wenn der Knotenname nach @ ein Knotenname ist, der mit g beginnt, ist er erfolgreich. Bitte beachten Sie, dass Sie überall auf dem interaktiven Knoten in das Ausgangsverzeichnis weitergeleitet werden

shell-window-2


[xxxxxxxxxx@g0001 ~]$ 

Verwenden Sie Jupyter Lab für Rechenknoten

Die Vorgehensweise entspricht im Wesentlichen der Verwendung von Jupyter Lab mit einem interaktiven Knoten. Ersetzen Sie bei der Portweiterleitung es ~ im Knotennamen durch g ~.

Verwenden Sie den Rechenknoten im Spot-Modus

Es ist nicht erforderlich, sich vorher beim Rechenknoten anzumelden ***.

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

Geben Sie für DIR_LOG im Voraus ein geeignetes Verzeichnis an. Wenn das aktuelle Verzeichnis in Ordnung ist

shell-window-2


[xxxxxxxxxx@es1 ~]$ export DIR_LOG=$(pwd)

Ist in Ordnung.

Wenn Sie die von Anaconda erstellte virtuelle Umgebung verwenden möchten, sollte der Inhalt der obigen Datei run.sh wie folgt lauten:

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

##Dies wird zur Bestätigung angezeigt
conda info -e
date
hostname

##Führen Sie Python-Code aus
python main.py arg1 arg2 arg3

Verwenden Sie den Rechenknoten im reservierten Modus

[Aktualisiert am 22. Mai 2020]

Reservierung und Löschung der Reservierung

Bitte beachten Sie das offizielle Handbuch (da es leicht zu verstehen ist) https://docs.abci.ai/ja/03/#reservation

Verwenden Sie den Befehl qrsub, um eine Reservierung vorzunehmen. -a: Geben Sie das Startdatum des Jobs im Format JJJJMMTT an. Der Job beginnt ** um 10 Uhr ** am Startdatum. Wenn Sie den Tag nach 10 Uhr angeben, wird eine Fehlermeldung angezeigt. -d: Geben Sie den Jobausführungszeitraum (Tage) an. Die Ausführung wird ** um 9:30 Uhr ** N Tage nach dem durch -a angegebenen Startdatum gestoppt. Geben Sie entweder -e unten oder -d an. -e: Geben Sie das Stoppdatum und die Stoppzeit des Jobs an. Die Ausführung wird ** um 9:30 Uhr an dem von JJJJMMTT angegebenen Tag gestoppt. Geben Sie entweder -d oben oder -e an. -N: Geben Sie den reservierten Namen als Zeichenfolge an. Sie können am Anfang keine Nummer angeben.

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

Verwenden Sie den Befehl qrdel, um eine Reservierung zu löschen. Geben Sie die ID an, die beim Vornehmen einer Reservierung ausgegeben wurde ("12345" im obigen Ausführungsbeispiel), als Argument.

shell-window-2


[xxxxxxxxxx@es1 ~]$ qrdel 12345

Führen Sie den Job mit der reservierten Ressource aus

Geben Sie die ID an, die bei einer Reservierung mit der Option "-ar" im Befehl "qsub" ausgegeben wurde.

Ausführungsbeispiel:

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

abschließend

Entschuldigen Sie, aber es tut mir leid, aber es wird nicht beschrieben, wie ABCI verwendet wird, da ich nur das Memo portiert habe, das ich für meinen Zweck erstellt habe. Wenn Sie detailliertere Informationen benötigen, lesen Sie bitte die unter "Referenzmaterialien" aufgeführten Materialien.

Recommended Posts

Hinweise zur Verwendung von AIST Spacon ABCI
Hinweise zur Verwendung beim Kombinieren von pandas.DataFrame
Zusammenfassung der Verwendung von pandas.DataFrame.loc
Zusammenfassung der Verwendung von pyenv-virtualenv
[Memo] Verwendung von Google MµG
Zusammenfassung der Verwendung von csvkit
So entwickeln Sie in einer virtuellen Python-Umgebung [Memo]
[Python] Zusammenfassung der Verwendung von Pandas
[Memo] Verwendung von BeautifulSoup4 (1) HTML anzeigen
Berechnen Verwenden Sie% des Befehls df
[Python2.7] Zusammenfassung der Verwendung von unittest
Verwendung des Jupyter-Notebooks mit ABCI
Verwendung von Jupyter am Frontend von Spacon ITO
Jupyter Notebook Grundlagen der Verwendung
Grundlagen von PyTorch (1) - Verwendung von Tensor-
Zusammenfassung der Verwendung der Python-Liste
[Python2.7] Zusammenfassung der Verwendung des Unterprozesses
[Frage] Wie verwende ich plot_surface von Python?
So berechnen Sie die Volatilität einer Marke
Verwendung von Folium (Visualisierung von Standortinformationen)
Nicht viel erwähnt, wie man Pickle benutzt
Zusammenfassung der Verwendung von MNIST mit Python
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
Verwendung von Pandas 2
Verwendung von Virtualenv
Verwendung von numpy.vectorize
Verwendung von pytest_report_header
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von IPython
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?
Verwendung der Liste []
Wie man Python-Kabusapi benutzt
Verwendung von OptParse
Verwendung von return
Wie man Imutils benutzt
Erstellen Sie einen Datensatz mit Bildern, die für das Training verwendet werden sollen
Memo mit Python mit HiveServer2 von EMR verbunden
Ich habe versucht zusammenzufassen, wie man Matplotlib von Python verwendet
Ein Memo zum visuellen Verstehen der Achse von Pandas.Panel