だから私はgmsh
とトーバルを持っています。JupyterノートブックからMPI互換アプリケーションを実行するには?
try:
out = subprocess.check_output(
["gmsh", "gmsh -3 -algo meshadapt tmp_0.geo -o SFM.msh"],
stderr=subprocess.STDOUT
).strip().decode('utf8')
except subprocess.CalledProcessError as e:
out = e.output
print(out)
:
直接実行が正常に動作します:
!gmsh -3 -algo meshadapt tmp_0.geo -o SFM.msh
コードから実行に失敗したものの
B」----------- -------------------------------------------------- ------------- \ n [[23419,1]、0]:高性能Open MPIポイントツーポイントメッセージングモジュール\ nwas unabl \ n \ nモジュール:OpenFabrics (openib)\ nホスト:931136e3f6fe \ n \ n他のトランスポートは の代わりに使用されますが、これは\のパフォーマンスが低下する可能性があります。 -------------------------------------------------- -------------------- \ n \ x1b [1m \ x1b [31m致命的:ディスプレイを開くことができません:(FLTK内部 エラー)\ x1b [0m \ n- -------------------------------------------------- -----------------------コミュニケータMPI_COMM_WORLD \ nのランク0で\ nMPI_ABORTがエラーコード 1で呼び出されました。\ n \ n注:MPI_ABORTを呼び出すと、Open MPIはすべてのMPIプロセスを終了してください。\ n他のプロセスからの出力が表示される場合もありますが、 に依存する場合もあります。\ n正確には、Open MPIが を殺すと\ n ------------------- -------------------------------------------------- ----- \ n "
したがって、Python 3コードからjupyterで!
の実行をエミュレートするにはどうすればよいですか?
@Hristo:
_ =は/ opt/conda/binに/ jupyter SHLVL = 1つのPATH =は/ opt/conda/binにします。/ opt/conda/binに:は/ usr/local/HOSTNAME = 931136e3f6fe HOME = /ルートLC_ALL = C.UTF-8 PWD =/JPY_PARENT_PID = 1 LANG = C。sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ bin UTF-8 TERM = xterm-color CLICOLOR = 1 PAGER = cat GIT_PAGER = cat MPLBACKEND =モジュール://ipykernel.pylab.backend_inline env DISPLAY =:0 gmsh -3 -algo meshadapt tmp_0.geo -o SFM.msh
@Gilles: 同じ結果です。
することができます '輸出OMPI_MCA_btl =^openib'この環境変数の設定を解除しようとすると、物事が行く方法を見て、両方のコマンドラインから(例えばインタラクティブモード)とすることができますそしてさらに試みる ?根本原因がinfiniband(MPI)か表示問題(アプリケーションに関連している可能性がある)かどうかを判断するのは難しい –
DISPLAY環境変数が表示サーバーとの接続を開くことができないという苦情があります正しく設定してください。コマンドを '[" env "、" env DISPLAY =:0 gmsh -3 -algo ... "]'として実行してみてください。適切な値を得るためにグラフィカル端末で 'echo $ DISPLAY'を実行してください。 Jupyterサーバが別のアカウントで動作している場合、 'xhost +'が端末で発行されていなければ動作しない可能性があります(危険 - ディスプレイサーバ認証を無効にします)。 Jupyterが別のホスト上で動作している場合は、まったく動作しない可能性があります。 –