首先在官網下載下傳,https://www.microsoft.com/en-us/download/details.aspx?id=57467
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLuVzVhFXNXlVdWdUYsx2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLykzM1IDMxYTMyITNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
點開Download
全部下載下傳,找到下載下傳目錄
分别安裝兩者,安裝目錄可自行更改,除此之外一直next和accept即可
安裝完後得到如圖六個檔案夾
以管理者身份打開vs2019
建立空項目并在源檔案添加建立項或建立控制台應用皆可
在解決方案資料總管右鍵單擊項目,打開屬性
将平台設定為x64
在VC++目錄裡,包含目錄添加上include檔案的路徑,庫目錄裡添加Lib\x64的路徑
在預處理器的預處理定義中添加MPICH_SKIP_MPICXX;
在代碼生成運作庫中選擇多線程調試(/Mtd)
在連結器輸入中添加msmpi.lib;
關掉屬性框,在程式上方選擇x64
嘗試輸入樣例程式進行調試即可
#include <mpi.h>
#include <stdio.h>
#include <math.h>
int main(int argc, char* argv[]) {
int done = 0, n, myid, numprocs, i;
double mypi, pi, sum;
double startwtime, endwtime;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &myid);
MPI_Get_processor_name(processor_name, &namelen);
fprintf(stderr, "Process %d on %s\n", myid, processor_name);
fflush(stderr);
n = 0;
while (!done) {
if (myid == 0) {
printf("輸入一個數字不超過100000000: (0 退出) "); fflush(stdout);
scanf_s("%d", &n);
startwtime = MPI_Wtime();
}
MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD);/*将n值廣播出去*/
if (n == 0)
done = 1;
else {
sum = 0.0;
for (i = myid + 1; i <= n; i += numprocs) {
sum += i;
}
mypi = sum;/*各個程序并行計算得到的部分和*/
MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
if (myid == 0) {
/*執行累加的0号程序将近似值列印出來*/
printf("結果 %.16f\n", pi);
endwtime = MPI_Wtime();
printf("時間 = %f\n", endwtime - startwtime);
}
}
}
MPI_Finalize();
}
有些程式在vs運作不了,可以打開PowerShell或者指令行,進入對應路徑,輸入mpiexec -n 10 程式名.exe運作