版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.目錄一 .系統(tǒng)安裝21.下載地址22.安裝步驟23.Visual Stdio設置2二 .實驗程序31.簡單的 MPI 編程示例32.消息傳遞 MPI 編程示例 143.消息傳遞 MPI 編程示例 254.Monte Carlo 方法計算圓周率75.計算積分9三 .心得體會10.一. 系統(tǒng)安裝1. 下載地址FTP匿名登陸 ,在 pub/mpi/nt文件夾中2. 安裝步驟1) 在安裝有 MPI 的計算機上要建立一個有管理員權限的賬戶, 不可以沒有密碼;2) 雙擊 exe 文件,按默認設置安裝 MPI;3) 注冊 MPI 賬戶,調用 MPIRegister.exe,用
2、戶名和密碼即為第一步中的賬戶。3. Visual Stdio設置為避免每新建一個項目都要設置一次,可以對它進行通用設置。打 開 視 圖 - 其 他 窗 口 - 屬 性 管 理 器 , 點 擊 Debug|Win32 目 錄 下 的Microsoft.Cpp.Win32.user,在 VC+目錄下的包含目錄中添加MPICH的 Include路徑,庫目錄中添加 MPICH的 Lib 路徑;在鏈接器 - 輸入目錄下的附加依賴項中添加 mpich.lib 、mpe.lib 、mped.lib 、mpichd.lib 。.二. 實驗程序1. 簡單的 MPI 編程示例1) 源代碼#include #inc
3、lude int main(int argc, char* argv)int num, rk;MPI_Init(&argc, &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 #include int main(int argc, char* argv)
4、int myid, numprocs,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 (source
5、= 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 #include #include #define N 1002int main(int argc, ch
6、ar* argv).int myid, numprocs, C = 0;doubledataN, 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_COMM_WORLD, &numprocs);-numprocs;if (myid = 0)for (int i = 0; i N; +i)MPI_Send(&datai, 1, MPI_DOUB
7、LE, 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 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(&
8、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_Finalize();_return 0;.2) 運行截圖4. Monte Carlo方法計算圓周率1) 源代碼#include mpi.h #include #include int main(int argc, char *argv)int myid, numprocs; int source;long c
9、ount = 1000000; MPI_Status status; MPI_Init(&argc, &argv);MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_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; icount; i+).x = (double)rand() / (double)RAND_MAX;y = (double)rand() /
10、 (double)RAND_MAX;if (x - 0.5)*(x - 0.5) + (y - 0.5)*(y - 0.5)0.25)+m;pi = 4.0*m / n;printf(Process %d of % pi = %fn, myid, numprocs, pi);if (myid != 0)MPI_Send(&m, 1, MPI_DOUBLE, 0, 1, MPI_COMM_WORLD);elsep = m;for (source = 1; sourcenumprocs; source+)MPI_Recv(&m1, 1, MPI_DOUBLE, source, 1,MPI_COMM
11、_WORLD, &status);p = p + m1;printf(pi = %fn, 4.0*p / (n*numprocs);MPI_Finalize();return 0;2) 運行截圖.5. 計算積分1) 源代碼#define N 100000000 #define a 0 #define b 10 #include #include #include #include mpi.hint main(int argc, char* argv)int myid, numprocs; int i; _double local = 0.0, dx = (double)b - (double)
12、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; iN; 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.15fn, a, b,inte);M
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 道口崗前安全培訓會課件
- 2024+共識聲明:成人心臟手術患者快速拔管建議解讀
- 達州大灘消防安全培訓課件
- 邊溝開挖安全教育培訓課件
- 數(shù)據(jù)中心ups單機并機試題及答案
- 車隊防疫安全培訓課件
- 車隊安全培訓計劃方案課件
- 分公司副經理內部競聘經營管理類筆試題
- 車間級崗前安全培訓流程課件
- 酒店客房預訂與收益最大化策略制度
- 2026屆云南省昆明市西山區(qū)民中數(shù)學高一上期末考試模擬試題含解析
- 2025年大學第一學年(食品營養(yǎng)與健康)營養(yǎng)學基礎測試題及答案
- 2025-2030烏干達基于咖啡的種植行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 2026年共青團中央所屬單位招聘66人備考題庫及答案詳解一套
- 人民警察法培訓課件
- 2026年哈爾濱職業(yè)技術學院單招職業(yè)適應性考試題庫參考答案詳解
- 2025云南昆明巫家壩建設發(fā)展有限責任公司及下屬公司第四季度社會招聘31人歷年真題匯編帶答案解析
- 輸尿管切開取石課件
- 小貓絕育協(xié)議書
- 66kV及以下架空電力線路設計標準
- 2025年浙江乍浦經濟開發(fā)區(qū)(嘉興港區(qū))區(qū)屬國有公司公開招聘28人筆試考試備考試題及答案解析
評論
0/150
提交評論