LoginSignup
15
12

More than 3 years have passed since last update.

遺伝研スパコンで Jupyter Notebook を利用する方法

Last updated at Posted at 2019-12-12

概要

遺伝研スパコンのゲートウェイノードを踏み台にしたポートフォワーディングを使うことで、スパコン側で起動している Jupyter Notebook にローカル側から接続することができます。

産総研 ABCI システムの利用ガイドを参考にしました。遺伝研スパコンでも応用可能な情報が豊富です。

ここで紹介する方法に関しては遺伝研スパコンの利用法として問題がないことを管理者に確認をしておりますが、過剰なリソースの占有や他のユーザーに迷惑がかかるような計算処理を行わないように気をつけてください。

スパコン側の操作

  1. スパコンゲートウェイノードにログインしたのち、qloginをおこなってインタラクティブノードにログインします。複数 CPU を使った並列計算や大量のメモリを必要とする処理を行う場合には-lオプションや-peオプションでリソースの指定をして qlogin を行ってください。

  2. ログイン先のホスト名を確認します。qlogin 時に負荷の低いノードが自動的に選ばれるためログインごとにホスト名は変わります。

    $ hostname
    at029  # 例
    
  3. netstatコマンドで空いているポート番号を調べます。使用したいポート番号を grep して何も表示されなければ空いています。50000番台以降なら問題ないでしょう。

    $ netstat -an |grep 58888  # 何も表示されないことを確認
    
  4. Jupyter Notebook を起動したいディレクトリに移動したら、次のようなオプションを指定して起動します。

    $ jupyter notebook --ip=`hostname` --port=58888 --no-browser
    

    このとき画面上に接続に必要なトークンが表示されますので確認しておきます。

    $  jupyter notebook --ip=`hostname` --port=58888 --no-browser
    [I 21:09:48.392 NotebookApp] Writing notebook server cookie secret to /home/ユーザー名/.local/share/jupyter/runtime/notebook_cookie_secret
    [I 21:10:03.057 NotebookApp] Serving notebooks from local directory: /home/ユーザー名/ディレクトリ名
    [I 21:10:03.057 NotebookApp] The Jupyter Notebook is running at:
    [I 21:10:03.057 NotebookApp] http://at029:58888/?token=e5dfb494845ca2f63284d8878be1899d86312d51d94c5968
    [I 21:10:03.057 NotebookApp]  or http://127.0.0.1:58888/?token=e5dfb494845ca2f63284d8878be1899d86312d51d94c5968
    [I 21:10:03.057 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
    [C 21:10:03.086 NotebookApp] 
    
    To access the notebook, open this file in a browser:
        file:///home/ユーザー名/.local/share/jupyter/runtime/nbserver-37289-open.html
    Or copy and paste one of these URLs:
        http://at029:58888/?token=e5dfb494845ca2f63284d8878be1899d86312d51d94c5968 <== トークン
     or http://127.0.0.1:58888/?token=e5dfb494845ca2f63284d8878be1899d86312d51d94c5968
    

追記)トークンの指定

--NotebookApp.tokenオプションを指定して接続トークンを指定することができます。

jupyter notebook --ip=`hostname` --port=58888 --no-browser --NotebookApp.token='MyToken'

追記)singularityの利用

Singularity 内の Jupyter Notebook も次のように利用可能です。

$ singularity exec datascience-notebook_latest.sif jupyter notebook --ip=`hostname` --port=58888 --no-browser 

(使用したイメージファイルはsingularity pull docker://jupyter/datascience-notebookでビルドしたものです)

なお、Jupyter Notebook 内で "!" をつけてシェルコマンドが実行できるので追加パッケージをインストールすることもできます。

!pip install pysam

この場合、パッケージのインストールはコンテナ内ではなく、ホームディレクトリの .local 以下になるようです(~/.local/lib/python3.7/site-packages)。コンテナ外からも .local を利用していた場合、なんらかのバッティングが生じる場合があるかもしれません。

ローカル側の操作

以下は Mac や Linux を使用した場合です。Windows でもポートフォワーディングを行えば接続できるはずです。

  1. 新たなターミナルを開き ssh コマンドを使って Jupyter Notebook が動いているノードに対しスパコンゲートウェイを経由したポートフォワーディングを行います。下記コマンドはローカルホストの 8888 番ポートへの通信をスパコン at029 ノードの 58888 番ポートへ転送するという意味です。

    $ ssh -L 8888:at029:58888 ユーザー名@gw.ddbj.nig.ac.jp
    

    ターミナルは開いたままにしておいてください。

  2. ブラウザで http://localhost:8888 を開く

  3. トークンを入力してログイン

以上です。

15
12
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
15
12