VS2012下配置MPI
1、先下載安裝mpich,下載地址爲:
http://www.mpich.org/downloads/
完成後的目錄如下圖所示:
2、打開VS,創建如下工程
3、選擇項目屬性,添加頭文件和庫文件
4、引入mpi頭文件和庫
(1)找到“VC++ Directions-》Include Directories”,加上MPICH2的include文件路徑,例如:“D:\software\MPICH2\include”
(2)左邊還是“VC++ Directions-》Library Directories”,在此項的最後添加MPICH2的lib文件的路徑,如“D:\software\MPICH2\lib”
5、因爲VC的IO庫與MPI的宏定義有衝突,所以需要預定義一個MPICH_SKIP_MPICXX宏,使得編譯時跳過MPICXX定義。在如下位置加上“MPICH_SKIP_MPICXX”即可。
6、設置運行庫爲多線程
在如下位置選擇“Multi-threaded Debug (/MTd)”,可以通過下拉單選擇。
7、添加連接庫
在如下位置添加“mpi.lib”
8、註冊MPI,使得系統知道它。
打開“開始”,找到“MPICH2”文件夾,如下:
選擇“wmpiregister.exe”,如下:
輸入用戶名和密碼(此處的用戶名和密碼就是你鎖屏時的用戶名和密碼),點擊“Register”,當下面出現“Password encrypted into the Register”後點擊“OK”即可。
9、運行程序
(1)先在VS中編譯源程序,得到.exe文件;
(2)打開“開始”,找到“MPICH2”文件夾下的“wmpiexec.exe”,如下
選擇剛纔編譯得到的.exe文件,如“D:\program\vs_code\MPI_01\Release\MPI_01.exe”
設置線程數“Number of processes”,例如:4
點擊執行“Execute”,在下面的編輯框中會出現運行的結果,如下:
測試源碼:
#include "mpi.h" #include<stdio.h> int main(int argc, char* argv[]) { int myid, numprocs; int namelen; char processor_name[MPI_MAX_PROCESSOR_NAME]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); MPI_Get_processor_name(processor_name, &namelen); printf("Hello World! Process %d of %d on %s\n", myid, numprocs, processor_name); MPI_Finalize(); return 0; }