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.
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
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.
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 ~]$
Die Vorgehensweise entspricht im Wesentlichen der Verwendung von Jupyter Lab mit einem interaktiven Knoten. Ersetzen Sie bei der Portweiterleitung es ~ im Knotennamen durch g ~.
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
[Aktualisiert am 22. Mai 2020]
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
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
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