




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄一.系統安裝11.下載地址12.安裝步驟13.Visual Stdio設置1二.實驗程序21.簡單的MPI編程示例22.消息傳遞MPI編程示例133.消息傳遞MPI編程示例244.Monte Carlo方法計算圓周率65.計算積分8三.心得體會9一. 系統安裝1. 下載地址FTP匿名登陸,在pub/mpi/nt文件夾中2. 安裝步驟1) 在安裝有MPI的計算機上要建立一個有管理員權限的賬戶,不可以沒有密碼;2) 雙擊exe文件,按默認設置安裝MPI;3) 注冊MPI賬戶,調用MPIRegister.exe,用戶名和密碼即為第一步中的賬戶。3. Visual Stdio設置為避免每新建一個項
2、目都要設置一次,可以對它進行通用設置。打開視圖-其他窗口-屬性管理器,點擊Debug|Win32目錄下的Microsoft,在VC+目錄下的包含目錄中添加MPICH的Include路徑,庫目錄中添加MPICH的Lib路徑;在鏈接器-輸入目錄下的附加依賴項中添加mpich.lib、mpe.lib、mped.lib、mpichd.lib。二. 實驗程序1. 簡單的MPI編程示例1) 源代碼#include <mpi.h>#include <stdio.h>int main(int argc, char* argv)int num, rk;MPI_Init(&argc
3、, &argv);MPI_Comm_size(MPI_COMM_WORLD, &num);MPI_Comm_rank(MPI_COMM_WORLD, &rk);printf("Hello world from Process %d of %dn", rk, num);MPI_Finalize();return 0;2) 運行截圖2. 消息傳遞MPI編程示例11) 源代碼#include <mpi.h>#include <stdio.h>int main(int argc, char* argv)int myid, numpro
4、cs,source;MPI_Status status;char messages100;MPI_Init(&argc, &argv);MPI_Comm_size(MPI_COMM_WORLD, &numprocs);MPI_Comm_rank(MPI_COMM_WORLD, &myid);if (myid != 0)strcpy(messages, "Hello World!");MPI_Send(messages, strlen(messages) + 1, MPI_CHAR, 0, 99, MPI_COMM_WORLD);elsefor
5、 (source = 1; source < numprocs; source+)MPI_Recv(messages, 100, MPI_CHAR, source, 99, MPI_COMM_WORLD,&status);printf("I am process %d I recv string '%s' from process %dn", myid, messages, source);MPI_Finalize();return 0;2) 運行截圖3. 消息傳遞MPI編程示例21) 源代碼#include <stdio.h>#i
6、nclude <mpi.h> #include<math.h>#define N 1002int main(int argc, char* argv)int myid, numprocs, C = 0;double dataN, SqrtSum=0.0;_double d;for (int i = 0; i < N; i+)datai = i;MPI_Status status;MPI_Init(&argc, &argv);_MPI_Comm_rank(MPI_COMM_WORLD, &myid);MPI_Comm_size(MPI_COM
7、M_WORLD, &numprocs); -numprocs;if (myid = 0)for (int i = 0; i < N; +i) MPI_Send(&datai, 1, MPI_DOUBLE, i%numprocs + 1, 1, MPI_COMM_WORLD);for (int source = 1; source <= numprocs; +source)MPI_Recv(&d, 1, MPI_DOUBLE, source, 99, MPI_COMM_WORLD, &status);SqrtSum += d;elsefor (int
8、i = myid; i < N; i = i + numprocs)MPI_Recv(&d, 1, MPI_DOUBLE, 0, 1, MPI_COMM_WORLD, &status);SqrtSum += sqrt(d);+C;MPI_Send(&SqrtSum, 1, MPI_DOUBLE, 0, 99, MPI_COMM_WORLD); printf("I am process %d. I recv total %d from process 0, and SqrtSum=%f.n", myid, C, SqrtSum);_MPI_Fin
9、alize();_return 0;2) 運行截圖4. Monte Carlo方法計算圓周率1) 源代碼#include "mpi.h"#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv)int myid, numprocs;int source;long count = 1000000;MPI_Status status;MPI_Init(&argc, &argv);MPI_Comm_rank(MPI_COMM_WORLD, &myid);MP
10、I_Comm_size(MPI_COMM_WORLD, &numprocs);srand(myid);double y, x, pi = 0.0, n = count;long m = 0, m1 = 0, i = 0, p = 0;for (i = 0; i<count; i+) x = (double)rand() / (double)RAND_MAX;y = (double)rand() / (double)RAND_MAX;if (x - 0.5)*(x - 0.5) + (y - 0.5)*(y - 0.5)<0.25)+m; pi = 4.0*m / n;pri
11、ntf("Process %d of % pi = %fn", myid, numprocs, pi);if (myid != 0) MPI_Send(&m, 1, MPI_DOUBLE, 0, 1, MPI_COMM_WORLD); else p = m;for (source = 1; source<numprocs; source+) MPI_Recv(&m1, 1, MPI_DOUBLE, source, 1, MPI_COMM_WORLD, &status); p = p + m1; printf("pi = %fn&quo
12、t;, 4.0*p / (n*numprocs); MPI_Finalize();return 0;2) 運行截圖5. 計算積分1) 源代碼#define N 100000000#define a 0#define b 10#include <stdio.h>#include <stdlib.h>#include <time.h>#include "mpi.h"int main(int argc, char* argv)int myid, numprocs; int i; _ double local = 0.0, dx = (doubl
13、e)b - (double)a) / (double)N;double inte, x;MPI_Init(&argc, &argv);_ MPI_Comm_rank(MPI_COMM_WORLD, &myid);_ MPI_Comm_size(MPI_COMM_WORLD, &numprocs);for (i = myid; i<N; i = i + numprocs) x = a + i*dx + dx / 2;local += x*x*dx;MPI_Reduce(&local, &inte, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);_ if (myid = 0) printf("The integal of x*x in region %d,%d =%16
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年國際化教育中跨文化交流能力培養的跨文化教育政策創新研究報告
- 城市生活垃圾分類公眾參與機制優化與長效管理效果評估分析研究報告
- 2025年醫院電子病歷系統在醫院信息化建設中的知識圖譜構建應用報告
- 2025年互聯網醫療平臺在線問診服務與患者疾病管理報告
- 海洋生態保護與修復2025:政策法規與海洋生態修復技術標準應用分析報告
- 咨詢工程師付子健課件
- 2025年海上風能資源評估與深遠海風電場技術交流與合作平臺報告
- 2025年福建省廈門市雙十中學英語八年級第二學期期末檢測試題含答案
- 數字文化產業發展報告:2025年商業模式創新與文化產業發展與文化產業創新
- 2025年教育信息化基礎設施建設與教育信息化產業創新趨勢研究報告
- 2025秋三年級上冊語文上課課件 9 犟龜
- 石灰廠中控室管理制度
- 【數學 北京版】2025年高考招生統一考試高考真題數學試卷(真題+答案)
- 抵押車輛合同范本
- 2025至2030年中國汽車抵押貸款行業市場研究分析及發展潛力研判報告
- 2024年杭州市蕭山區機關事業單位招聘真題
- 第三方外包管理制度
- 2025至2030中國原木行業產業運行態勢及投資規劃深度研究報告
- 2025年重慶市中考生物試卷真題(含標準答案)
- 中外航海文化知到課后答案智慧樹章節測試答案2025年春中國人民解放軍海軍大連艦艇學院
- 國家開放大學《中國法律史》形考任務1-3答案
評論
0/150
提交評論