LoginSignup
6
7

More than 3 years have passed since last update.

ABCIで機械学習環境を爆速で構築する

Last updated at Posted at 2020-02-27

0. 概要

ABCIというスパコン的なAI研究のためのハードウェアリソース基盤が凄いらしい。
https://abci.ai/ja/

使ってみようとしたところ、使うまでが結構難しいのでまとめてみた。

簡単に以下の手順が必要である。

  • アカウント登録
  • 公開鍵登録
  • asにログイン
  • esにログイン
  • 計算ノードへログイン
  • GPUを使える!

TL;DR

以下の3ステップで計算ノードへ接続できます。

host$ ssh <YOUR_USERNAME>@as.abci.ai -L 10022:es:22
host$ ssh -XC -p 10022 -l <YOUR_USERNAME> localhost
es$ qrsh -g <YOUR_GROUPNAME> -l rt_F=1 -pty yes -display $DISPLAY -v TERM /bin/bash

1. 環境構築

計算ノードに接続するところまで環境構築を行う。

1.1. アカウント登録

以下のウェブサイトから申請してアカウントを発行
https://abci.ai/ja/how_to_use/member.html
次に、アカウントと仮パスワードを使ってログイン。

1.2. 公開鍵登録

ABCI利用ポータルに接続して、公開鍵を登録する。
image.png

1.3. SSHログイン (to as)

ACBIに公開鍵でログインする。

概要

image.png
この時、ログインするマシンはACBI内のasであるが、フォワーディングされて
es1~es4のどれかにログインすることになる。
esは1人あたり32MB程度しか割り当てられておらず、またGPU等も利用できない。
そこで、有料マシンの計算ノードに接続する必要がある。

asにssh

teraterm等のsshクライアントを使いログインを行う。

$ ssh <YOUR_USERNAME>@as.abci.ai -L 10022:es:22

こんな感じの画面が表示されれば成功である。
image.png

esにssh

次にesにログインする。
teraterm等のsshクライアントをもう1つ開き以下のように入力する

$ ssh -p 10022 -l <YOUR_USERNAME> localhost

これでWelcome to ABCI System等と表示されれば成功である。

1.4. 計算ノードへ接続

esにつないだところで、ただのハブである。
これから計算ノードを利用する。計算ノードの利用は有料である。今回はグループ単位で借りているとする。

es内で以下のコマンドを実行する

$ qrsh -g group -l resource_type=num [options]

例えば次のようにする$ qrsh -g gabxxxx -l rt_F=1
なお、リソースタイプは以下である。
image.png

おもむろにnvidia-smi -lを実行すると・・・

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.33.01    Driver Version: 440.33.01    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla V100-SXM2...  On   | 00000000:3D:00.0 Off |                    0 |
| N/A   25C    P0    41W / 300W |      0MiB / 16160MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla V100-SXM2...  On   | 00000000:3E:00.0 Off |                    0 |
| N/A   23C    P0    40W / 300W |      0MiB / 16160MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  Tesla V100-SXM2...  On   | 00000000:B1:00.0 Off |                    0 |
| N/A   23C    P0    42W / 300W |      0MiB / 16160MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  Tesla V100-SXM2...  On   | 00000000:B2:00.0 Off |                    0 |
| N/A   25C    P0    42W / 300W |      0MiB / 16160MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

1.5. Display変数を引き継いで接続

まずasにつないだ状態で以下のように接続する。
ただDisplay変数を引き継いで渡しているだけである。

host$ ssh -XC -p 10022 -l <YOUR_USERNAME> localhost
es$ qrsh -g <YOUR_GROUPNAME> -l rt_F=1 -pty yes -display $DISPLAY -v TERM /bin/bash

2. 機械学習環境

一先ず、TensorflowとKerasを入れてみる。

2.1. 初回

計算ノードにログインした状態で以下を実行する。

g0001$ module load python/3.6/3.6.5 cuda/10.0/10.0.130.1 cudnn/7.6/7.6.5
g0001$ python3 -m venv ~/venv/tensorflow-keras
g0001$ source ~/venv/tensorflow-keras/bin/activate
(tensorflow-keras) g0001$ pip3 install --upgrade pip setuptools
(tensorflow-keras) g0001$ pip3 install tensorflow-gpu==1.15 keras

これでtensorflow及びkerasのインストールが終わった。

2.2. 2度目以降

簡単!

g0001$ module load python/3.6/3.6.5 cuda/10.0/10.0.130.1 cudnn/7.6/7.6.5
g0001$ source ~/venv/tensorflow-keras/bin/activate

99. その後

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7