所以我有一個gmsh
troberle。如何從Jupyter筆記本電腦運行兼容MPI的應用程序?
直接執行工作正常:
!gmsh -3 -algo meshadapt tmp_0.geo -o SFM.msh
雖然從代碼執行失敗:
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)
有:
B「----------- -------------------------------------------------- ------------- \ n [[23419,1],0]:高性能Open MPI點對點消息模塊\ n是 unabl e找到任何相關的網絡接口:\ n \ n模塊:OpenFabrics (openib)\ n主機:931136e3f6fe \ n \ n另一個傳輸將用 代替,儘管這可能會導致\ nlower 的性能。\ n ---- -------------------------------------------------- -------------------- \ n \ x1b [1m \ x1b [31mFatal:無法打開顯示:(FLTK內部 錯誤)\ x1b [0m \ n- -------------------------------------------------- ----------------------- \ nMPI_ABORT在通信器MPI_COMM_WORLD \ n的第0級被調用,錯誤代碼爲 1. \ n \ n注意:調用MPI_ABORT會導致Open MPI to殺死所有的MPI進程。\ n您可能會或可能不會看到其他進程輸出, 取決於\ nexactly開放MPI殺死 他們的時候。\ n ------------------- -------------------------------------------------- ----- \ n「
因此,如何從Python 3的代碼仿效jupyter !
執行?
@Hristo:
_ = /選擇/康達/ bin中/ jupyter SHLVL = 1個PATH = /選擇/康達/ bin中:/選擇/康達/ bin中:在/ usr /本地/ sbin目錄:在/ usr/local/bin中:/ usr/sbin目錄:在/ usr/bin中:/ sbin目錄:/ bin中 HOSTNAME = 931136e3f6fe HOME = /根LC_ALL = C.UTF-8 PWD =/JPY_PARENT_PID = 1 LANG = C。 UTF-8 TERM = xterm-color CLICOLOR = 1 PAGER = cat GIT_PAGER = cat MPLBACKEND = module://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運行在不同的主機上,它可能根本無法工作。 –