▶ Visual Studio 下配置MPI環境
● 參考資料:http://blog.csdn.net/z909768094/article/details/50926162
● 如果使用 MPICH,下載(MPICH:http://www.mpich.org/downloads/,MPICH2:http://www.mpich.org/static/downloads/1.4/),安裝(管理員權限)。
● 如果使用 MS-MPI,下載(https://docs.microsoft.com/en-us/message-passing-interface/microsoft-mpi),安裝(管理員權限)。在 Microsoft HPC Pack 或 Windows SDKs 中帶了 MS - MPI 組件的不用下了。
● VS項目屬性右鍵,屬性,VC++目錄,添加包含目錄和庫目錄,主要是需要 mpi.h 和 mpi.lib(MS-MPI 是msmpi.lib) 。
● VS項目屬性右鍵,屬性,C/C++,預處理器,預處理器定義,添加 MPICH_SKIP_MPICXX 。
● VS項目屬性右鍵,屬性,C/C++,代碼生成,運行庫,選擇多線程調試(/MTd) 。
● VS項目屬性右鍵,屬性,鏈接器,輸入,附加依賴項,添加 mpi.lib(MS-MPI 是 msmpi.lib)。
● 后面再用 mpiexec 執行可執行文件時可能遇到 “mpich2 error while connecting to host 由於目標計算機積極拒絕,無法連接。 (10061)” 的問題(MS-MPI 有類似問題,但是沒有找到解決辦法),需要在前期做一些工作(參考 https://blog.csdn.net/u014552756/article/details/50085269)。進入MPICH2 的安裝目錄下的 bin,運行 wmpiregister.exe,填寫賬號和密碼,register,OK退出(或管理員權命令行中,cd 到該目錄下,執行 smpd.exe -install -phrase behappy,behappy為默認短語,在安裝 MPICH2 的過程中有一層窗口中出現過,總之改成一樣的)
● 用 MPICH2 的 mpiexec 命令時,如果只在單機上以多進程方式運行,應當添加選項 -localonly,否則程序會花大量時間在通信測試上,表現為啟動程序后需要較長時間 CPU 才開始有負載。運行時可能需要管理員權限,不然會出現類似 “Unable to open the HKEY_LOCAL_MACHINE\SOFTWARE\MPICH\SMPD\process\XXXX registry key, error 5, 拒絕訪問。” 的問題。
●【坑】MS-MPI,以前安裝時沒有出現 “無法連接主機” 的問題,最近一次安裝中出現了,導致程序完全不能跑,只能使用 1 個進程來跑,暫時沒有解決。