前提・実現したいこと
多段階ポートフォワードした先のjupyter notebookでtensorflowをimportすると強制終了してしまうため、改善したい。
sshした先の計算コンピュータでpython、tensorflowの開発環境を作っています。
より具体的にはログインノードにsshしてそこからgrid engineを使って管理された計算ノードにqloginするという形です(踏み台経由の多段階ポートフォワード)。計算ノードから2段階ポートフォワードを踏んで計算ノード上のjupyter notebookをローカルのブラウザから操作したいと考えています。
ログインノードではtensorflowをimportしようとするとIllegal instruction (core dumped)になるのを確認しています。これは調べるとavxの有無が原因のように見えました。一方avxを持つ計算ノード上では確かにコマンドラインからpythonを実行するとき、tensorflowを正常にimportできました。
しかし、2段階ポートフォワードでjupyter notebookを計算ノードにて開き、tensorflowをimportしようとすると、ログインノードにおいてと同様にプロセスが終了されてしまいます。
ポートフォワード、jupyter notebookなどについても正直あまり詳しく理解してはいないのですが、これはどのような原因で起きているのと考えられるのでしょうか?
多分少なくともtensorflowのバージョンを下げれば対処できるとは思いますが可能ならこの方法は使いたくないです。
発生している問題・エラーメッセージ
jupyter notebookにてimport tensorflowできない。
エラーメッセージ The kernel appears to have died. It will restart automatically.
###実行しているコマンド
(server1=ログインノード、server2=計算ノードとします)
下記のコマンドを順に実行しています。
bash
1localPC:~$ ssh server1 -L 9900:localhost:9900 2返答 3Linux xxx 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3 (2019-02-02) x86_64 4 5The programs included with the Debian GNU/Linux system are free software; 6the exact distribution terms for each program are described in the 7individual files in /usr/share/doc/*/copyright. 8 9Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent 10permitted by applicable law. 11Last login: Fri Oct 23 09:54:14 2020 from 000.000.00.00
bash
1server1:~$ qlogin -q gpu.q 2返答 3Your job 43383 ("QLOGIN") has been submitted 4waiting for interactive job to be scheduled ... 5Your interactive job 43383 has been successfully scheduled. 6Establishing builtin session to host server2.aaa.com ...
bash
1server2:~$ cd projectA # (pipenvのプロジェクトフォルダに移動) 2server2:~/projectA$ pipenv shell 3返答 4Launching subshell in virtual environment... 5 . /path/to/$HOME/.venv/porjectA-IwBB_zea/bin/activate 6server2:~/projectA$ . /path/to/$HOME/.venv/projectA-IwBB_zea/bin/activate
bash
1(projectA)server2:~/projectA$ nohup jupyter notebook --no-browser --port 9900 > jupyter.log & 2返答 3[1] 17939 4nohup: ignoring input and redirecting stderr to stdout
bash
1(projectA)server2:~/projectA$ ssh server1 -R 9900:localhost:9900 -N -f 2返答 3Enter passphrase for key '/path/to/$HOME/.ssh/server1': 4#(パスを入力)
ブラウザでhttp://localhost:9900/にアクセス。
python
1import socket 2host = socket.gethostname() 3print(host) 4返答 5server2
となるためserver2からちゃんと実行されているように見える。
import tensorflowを実行しようとすると失敗する。
error
1Kernel Restarting 2The kernel appears to have died. It will restart automatically
回答1件
あなたの回答
tips
プレビュー