2017-09-15 15 views
5

だから私は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: 同じ結果です。

+0

することができます '輸出OMPI_MCA_btl =^openib'この環境変数の設定を解除しようとすると、物事が行く方法を見て、両方のコマンドラインから(例えばインタラクティブモード)とすることができますそしてさらに試みる ?根本原因がinfiniband(MPI)か表示問題(アプリケーションに関連している可能性がある)かどうかを判断するのは難しい –

+0

DISPLAY環境変数が表示サーバーとの接続を開くことができないという苦情があります正しく設定してください。コマンドを '[" env "、" env DISPLAY =:0 gmsh -3 -algo ... "]'として実行してみてください。適切な値を得るためにグラフィカル端末で 'echo $ DISPLAY'を実行してください。 Jupyterサーバが別のアカウントで動作している場合、 'xhost +'が端末で発行されていなければ動作しない可能性があります(危険 - ディスプレイサーバ認証を無効にします)。 Jupyterが別のホスト上で動作している場合は、まったく動作しない可能性があります。 –

答えて

1

環境変数$DISPLAYが設定されていません。

最初にJupyterノートブックの起動時に$DISPLAYが設定されていることを確認してください。 mpirunにすべてのMPIタスクにエクスポートするよう指示しなければならない場合もあります。オープンMPI 3.0.0から始まる

、あなたはところで、あなたのJupyterノート

を開始する前に、アプリケーションがXディスプレイを開く必要がありますする必要があり export OMPI_MCA_mca_base_env_list=DISPLAY でこれを達成することができますか? グラフィックが表示されない場合は、ディスプレイが使用できない場合に正しく動作するように調整することができます。

[補足]

他の可能性はgmshDISPLAYが設定されているので、表示が利用可能であると考え、それはそれを開こうとすると失敗することがあります。あなたはノートブックを経由して(例えばバッチモード)

関連する問題