Jupyter Notebookの利用
Jupyter Notebookを使ったlxgpu資源の利用
lxgpu01
,lxgpu02
ではJupyter Notebookのインスタンスを立ち上げリソースを利用することが可能です。以下の文書はlxgpu01
を例に
書かれていますが、lxgpu02
でも同様の手順でjupyter notebookが利用できます。
手順
Jupyterのインストール
- LCGEnv環境では既に
jupyter
がインストールされているので、すぐに使うことができます。venv+pipで仮想環境を作成した場合はjupyter
をpip installすることでjupyterが使用できるようになります。
jupyter_notebook_config.py の設定
-
パスワードのハッシュ化(パスワードを入力し出力されたハッシュをメモしておく)
(Jupyter Notebook 6以前を使用している場合は[user@lxgpu01 ~]$ ipython In [1]: from jupyter_server.auth import passwd In [2]: passwd() Enter passwd: Verify passwd: Out[2]: 'argon2:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
from notebook.auth import passwd
としてください。) -
設定ファイルの作成
-
設定ファイル(
~/.jupyter/jupyter_notebook_config.py
)に以下の様な設定を追加c.NotebookApp.ip = '*' c.NotebookApp.open_browser = False c.NotebookApp.notebook_dir = '/home/user/.jupyter/my_notebook' c.NotebookApp.port = 18123 c.NotebookApp.port_retries = 50 c.NotebookApp.password = u'argon2:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
notebook_dir
には上記で作ったノート用ディレクトリを設定(jupyter-notebook
を立ち上げるディレクトリからの相対パス、または/...
で初める絶対パスを指定。)port
は18000番台の適当な番号を設定(他の人がすでに使っているとエラーになるので、その場合は他のポートを利用してください。)password
は上記で取得したハッシュ値を記入
Jupyter Notebookの起動
-
インスタンスの立ち上げ:
[user@lxgpu01 ~]$ jupyter-notebook [W 18:19:12.111 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended. [I 18:19:12.116 NotebookApp] Serving notebooks from local directory: /home/user/.jupyter/my_notebook [I 18:19:12.116 NotebookApp] Jupyter Notebook 6.4.0 is running at: [I 18:19:12.116 NotebookApp] http://lxgpu01.icepp.jp:18123/ [I 18:19:12.116 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
- 起動時に指定したポートがすでに使われている場合、
port_retries
で指定した数だけ別のポートを試します。(指定しない場合はデフォルトで50回まで)。毎回起動時にメッセージを確認して、どの実際にどのポートを使っているか確かめてください。 - コマンドラインから直接ポートを指定することも出来ます。(毎回ポートを確認するのが面倒で、使われてるときだけ別のを指定して使いたい、という場合は
c.NotebookApp.port_retries=0
を設定しておいて、以下のコマンドで明示的にポートを指定する方が便利な場合もあるかと思います。)
- 起動時に指定したポートがすでに使われている場合、
ポートフォワーディングで手元の端末からアクセス
-
立ち上がったら手元の端末のターミナルから
login.icepp.jp
経由でssh
を使ったポートフォワードを行う(lxgpu01.icepp.jp
は外部から直接アクセスできないためlogin.icepp.jp
を経由したポートフォワードが必要。また、管理上ポートフォワードが出来るIPに制限をかけている関係上lxgpu01.icepp.jp
のIPアドレス(157.82.112.221
)を直接使う必要があります。) -
もしくは
~/.ssh/config
に以下のように記述しておくことで$ ssh jupyter
とするだけで同じことが可能になります。Host jupyter HostName login.icepp.jp User localForward 127.0.0.1:12345 lxgpu01.icepp.jp:18123
-
端末のブラウザで
http://127.0.0.1:12345
を開く- パスワードを聞かれたら最初にしたパスワードを入力してログイン
- 成功したら
Notebook
の下にあるPython3
アイコンをクリックしノートを作成 - 以下のテストコードを実行してみる。ホストが
lxgpu01.icepp.jp
、デバイスとしてGPU
などが確認出来たらOK。
© 2024 ICEPP, the University of Tokyo.
Reproduction of the article, figures and tables on this page is allowed as specified in the CC-BY-4.0 license.