2
A
回答
5
以下診斷過程假定MPICH/MPICH2和Open MPI爲 是您可能已鏈接的唯一可能的MPI實現。其他 (特別是商業)MPI實現確實存在,並可能有不同的庫名稱和/或庫符號。
首先確定是否動態鏈接:
% ldd my_executable
linux-vdso.so.1 => (0x00007ffff972c000)
libm.so.6 => /lib/libm.so.6 (0x00007f1f3c6cd000)
librt.so.1 => /lib/librt.so.1 (0x00007f1f3c4c5000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f1f3c2a7000)
libc.so.6 => /lib/libc.so.6 (0x00007f1f3bf21000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1f3c969000)
如果您在該列表中看到libmpich.so
,那麼你已經動態鏈接到 MPICH(或MPICH2)。如果您看到libmpi.so
,那麼您已與Open MPI鏈接。
如果兩者都不存在,那麼您可能只是靜態鏈接。在這種情況下 我們需要檢查二進制尋找區分符號:
% (nm my_executable | grep MPIR_Free_contextid >/dev/null) && echo "MPICH"
% (nm my_executable | grep ompi_comm_set_name >/dev/null) && echo "Open MPI"
1
開放MPI的應用程序反應MCA參數,即可以在環境變量進行傳遞。只是一些運行在單模式下的可執行文件(即沒有0/mpiexec
)像sysinfo_base_verbose
設置爲30:
$ OMPI_MCA_sysinfo_base_verbose=30 ./program
如果你得到這樣的輸出:
[hostname:pid] mca: base: components_open: Looking for sysinfo components
,那麼這是不是穩健的指示更該可執行文件使用Open MPI。
相關問題
- 1. 如何判斷我擁有的MPICH或OpenMPI版本?
- 2. 使用OpenMPI或MPICH與Boost MPI一起使用Win和Linux機器
- 3. 如何使用MinGW使用MPI(的openmpi或MPICH2) - GNU gfortran編譯
- 4. 了openmpi用的valgrind(我能和MPI編譯Ubuntu的發行版?)
- 5. 編譯並運行OpenMPI程序
- 6. 建議的基準測試程序來比較MPICH和的openmpi
- 7. MPICH和OpenMPI中的錯誤處理程序
- 8. MPI實現(OpenMPI,MPICH)如何處理安全/認證
- 9. 使用英特爾編譯器套件編譯OpenMPI應用程序
- 10. .ASP我需要編譯嗎?
- 11. 如何使用xcode 4編譯openmpi程序?
- 12. 我可以使用x64編譯過程中使用函數CreateProcess調用x32編譯的過程嗎?
- 13. 用cygwin/gfortran編譯或用acml編譯
- 14. 我是用x64 JDK編譯的嗎?
- 15. 什麼是MPI,MPICH和OPENMPI?在這種情況下,「實施」意味着什麼?
- 16. MPICH Hydra是MPD的替代品嗎?
- 17. OpenMPI如何覆蓋包括編譯器選項前綴
- 18. 我應該在Linux或Windows上交叉編譯嗎?
- 19. 我可以通過編程或腳本啓用net.tcp嗎?
- 20. 你曾經墜毀過編譯器嗎?
- 21. 是一個單通編譯過程嗎?
- 22. 我可以通過編譯來改進python運行時嗎?
- 23. 我們可以通過巡航控件編譯SQL語句嗎
- 24. 我必須依賴編譯器NRVO嗎?
- 25. 我的GNUstep編譯器有問題嗎?
- 26. 我可以讓PyInstaller優化編譯嗎?
- 27. 我的makefile顯示編譯錯誤嗎?
- 28. 我必須編譯成JavaScript嗎?
- 29. 編譯器編譯也包含了嗎?
- 30. 無法配置MPICH。所選的Fortran 90編譯程序gfortran不與選定的Fortran 77編譯器gfortran