公開:2023/01/18 最終更新:2024/07/12 大山
研究室では,GPUが搭載されている機械学習用サーバを複数所有している.標準的な機械学習/深層学習開発環境を Jupyter 環境で提供しているので,学生は Web ブラウザ等でサーバにアクセスして Python による機械学習プログラミングを行える.
ここでは研究室の機械学習用サーバの Jupyter Notebook にアクセスする方法を解説する.卒業研究が本格的に動き出す前に Jupyter 環境で機械学習プログラミングに慣れておくこと勧める.
セキュリティのため,研究室の機械学習サーバーには研究室LANからしかアクセスできない設定になっている.研究室で作業する時は,研究室のWi-Fiに接続すれば直接サーバアクセスできる.研究室Wi-Fiの接続情報は以下の通りである.
SSID: PatLab_5G または PatLab_2G
接続パスワード: GQJ2sGYihphW
ratchet:HPC tech 社製:2020年購入
ironhide:HPC tech 社製:2023年購入
sandstorm:HPC tech 社製:2024年購入
各機械学習用サーバのアドレスは以下の通り.トークンによる認証を導入しているので,以下の認証用Tokenを入力する.
PatLabo_jupyter2023
それぞれのサーバで作業用フォルダは共有されているので, いずれかのサーバのjupyter-notebookでファイルを作成・更新すると,全てのサーバで利用できる. 現在は単一ユーザによる運用となっているので,フォルダやファイル名で誰のファイルなのかわかるようにしておくこと.近日中にユーザ認証を導入する予定である.
Jupyter Notebookの使い方は各自勉強すること.
大学のLAN(大学内無線LAN接続など)からは SSH port forwarding を併用することで,研究室の jupyter notebook にアクセス可能である.自宅など学外からは大学が提供するVPNサービスを利用して学内LANに接続すればアクセスできる.
事前に以下の準備を完了させる
ローカルPCのssh設定ファイルに,以下の設定記述を追加する.
# 研究室の計算サーバ(研究室外からのアクセス用)
Host ratchet_VPN
HostName 133.20.58.97
User *自分のアカウント名*
*自分のアカウント名*には別途指定されたアカウント名を入力する.
SSH port forwarding を利用してローカルPCの8989番ポートをサーバの8989番ポートに転送する.
ローカルPC上のいずれかのターミナル(VS-codeの「ターミナル」や Windows Power Shell,コマンドプロンプトなど)で以下の ssh コマンドを実行し,サーバにリモートログインする.
# ratchet に接続する場合
ssh -L localhost:8989:192.168.11.10:8989 ratchet_VPN
# ironhide #1 に接続する場合
ssh -L localhost:8989:192.168.11.11:8989 ratchet_VPN
# ironhide #2 に接続する場合
ssh -L localhost:8989:192.168.11.11:8990 ratchet_VPN
# sandstorm #1 に接続する場合
ssh -L localhost:8989:192.168.11.12:8989 ratchet_VPN
# sandstorm #2 に接続する場合
ssh -L localhost:8989:192.168.11.12:8990 ratchet_VPN
#上記のとおりSSH設定ファイルを記述した場合
または
ssh -L localhost:8989:192.168.11.10:8989 <自分のログイン名>@133.20.58.97
# SSH設定ファイル記述を省略した場合
リモートログインを保持したまま,Webブラウザで localhost:8989(ローカルPCの8989番ポート)にアクセスすると,SSH port forwarding によりパケットが転送され,サーバの Jupyter Notebook にアクセスできる.
(注意)Jupyter Notebook の接続を終了するまでリモートログインは保持し続ける必要がある.
Notebookでの作業が終了した時は,メニューから「File」→「Close and Halt」を選択してNotebookを閉じてからWebブラウザのウィンドウを閉じる. 直接Webブラウザのウィンドウを閉じると,Jupyter Kernel(Pythonコードを実行するプログラム)が閉じられず,サーバのメモリ資源(GPUメモリ等)を保持し続けてしまい, 他の人がコードを実行できなくなってしまう場合がある.
もし「Close and Halt」をせずにウィンドウを閉じてしまった場合は, Jupyterのファイルメニュー画面から再度同じNotebookを開くか, 「Running」タブに列挙されているNotebookから該当するNotebookを開いて「Close and Halt」する. もしくは右側に表示される【Shutdown】ボタンから強制終了させることもできる. くれぐれも他の人のNotebookを閉じてしまわないように注意すること.
jupyter でログインする.パスワードは 'P@t_Lab0'cd nvidia_jupyter_docker/users_folder/../run_jupyter_docker.sh を実行./run_jupyter_docker_GPU1.shまたは_GPU2.shを実行Ctrl-p, Ctrl-qでdockerコンテナからdetachする.jupyter サーバの調子が悪くなった場合など,jupyterサーバを再起動すれば解決する可能性がある.
jupyter でログインする.docker ps コマンドを実行し,起動中コンテナの名前(NAMES:各行末尾)を確認する.docker attach [コンテナ名]Ctrl-c で jupyter サーバを停止させる.jupyter用コンテナは自動的に再起動されるよう設定されているので,
停止するためには docker update --restart=no [コンテナ名] で再起動設定を一時的に無効化する必要がある.
[目次へ]