1.首先,下載32位的MPICH2,(注意哦,是32位,不是64位)
http://202.117.4.228/files/B117000000042632/www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.4.1p1/mpich2-1.4.1p1-win-ia32.msi
2.安裝msi文件,為了省事,一切都按照默認的配置,直至安裝完成
3.WIN7下,有的機子裝得時候smpd是自動安裝的,有的機子win7下smpd.exe這個組件不會自動運行安裝,需要你在管理員的賬戶下運行,進行安裝注冊。
4. 若smpd沒有自動安裝,在運行MPI( 即點擊execute )的時候會提示smpd文件沒有注冊phrase。
安裝smpd的方法就是:
① 以管理員身份運行cmd,方法為:點擊開始菜單;
在搜索框中輸入“cmd”,將會在返回的搜索結果中看到cmd的快捷方式;
右鍵單擊該快捷方式;
在彈出菜單中選擇“打開文件位置”,這樣,在接下來彈出的文件夾中把cmd.exe文件復制到MPICH2的路徑下的bin文件夾下,MPICH2的安裝位置默認為 C:\Program Files (x86)\MPICH2\bin;
右擊C:\Program Files (x86)\MPICH2\bin\cmd.exe 文件,選擇“以管理員身份運行”;
進入之后,smpd.exe -install -phrase behappy;
出現下圖,即表示安裝smpd.exe成功。
5.接下來就是配置過程了。以下是配置標准c++工程的過程,供參考。
5.1.將Win32改為x64,如下圖
5.2. 展開左邊Configuration Properties,選中其中的C/C++,在右邊Additional Include Directories加入MPICH2安裝文件下的include文件夾,如“C:\Program Files\MPICH2\include;”
5.3. 展開左邊Linker,選中其中的General,在右邊Additional Library Directories加入MPICH2安裝文件夾下的lib文件夾,如“C:\Program Files\MPICH2\lib;”
5.4. 展開左邊Linker,選中其中的Input,在右邊Additional Dependencies加入“mpi.lib;”
至此,配置完成。
6.在開始菜單下運行mpiexec.exe,
7.選擇需要運行的exe文件,選擇需要的進程數,最后點擊Execute按鈕即可。
8.下面是其他形式的配置說明。
后面具體的配置過程在網上可以找到,記錄一下:
1)然后用VS創建一個C++的Win32控制台空項目,加入你的資源文件。
2)打開項目屬性對話框。
3)進入配置屬性
1>配置為Debug和Release的時候,“C/C++”選項卡里面的“代碼生成”選項卡,選擇“運行時庫”為“多線程(/MT)”;
2>配置為所有配置的時候,“C/C++”選項卡里面的“常規”選項卡,為“附加包含目錄”加入目錄“C:\Program Files\MPICH2\Include”;
3>配置為所有配置的時候,“鏈接器”選項卡里面的“常規”選項卡,為“附加庫目錄”加入目錄“C:\Program Files\MPICH2\Lib”;
4>配置為所有配置的時候,“鏈接器”選項卡里面的“命令行”選項卡,為“附加選項”加入“mpi.lib,fmpich2.lib”。
5>配置為Debug的時候,“鏈接器”選項卡里面的“命令行”選項卡,為“附加選項”加入“cxxd.lib”;
6>配置為Release的時候,“鏈接器”選項卡里面的“命令行”選項卡,為“附加選項”加入“cxx.lib”。
7>上面庫文件中mpi.lib是用於C語言庫,cxx.lib是用於C++語言庫(cxxd.lib是debug版本),fmpich2.lib是用於Fortran語言庫,可根據使用情況相應增減。
8>進入常規->(項目默認值)MFC的使用,右邊選擇->在靜態庫中使用 MFC,可使生成的.exe文件拷貝到其它電腦也能單獨運行。
4)配置完成,可以編譯並運行你的並行程序了。
這個過程在官網上也有說明:
http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-1.3.2-windevguide.pdf
不過需要注意的事,這些IDE都是比較早得版本,和我們用vs2010不太一樣,但是設置的東西都一樣,位置變了而已。
最后,由於mpiexec執行是通過port進行線程間交換數據的,所以如果遇到問題,還要注意配置防火牆配置。除了一些第三方防火牆,比如360防火牆要設置外,也不要設置windows自身帶的防火牆。如果不會設置,最簡單的方法就是將防火牆統統關閉。在不使用mpiexec的時候再打開防火牆。
轉載地址:http://gengyanhui111.blog.163.com/blog/static/1401502102012521100365/