版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一實(shí)驗(yàn)?zāi)康?) 用openMP實(shí)現(xiàn)最基本的數(shù)值算遮“矩眸乘法”2) tfi for編譯制導(dǎo)語旬3) 對(duì)并U程序進(jìn)行簡(jiǎn)單的11能二實(shí)驗(yàn)環(huán)境1) 硬件環(huán)境:32核CPU、32G存計(jì)算機(jī);2) 軟件環(huán)境:Linux、Win2003、GCC、MPICH. VS2008;4) Windows登錄方式:通過遠(yuǎn)程桌而連接97,用戶名和fl始密碼都是自己的學(xué) 號(hào)。三實(shí)驗(yàn)容1.用0 penMP編寫兩個(gè)n階的方陣a和b的HI乘槨序,結(jié)果存笊在方陣c中,其中乘法用for 編理胃導(dǎo)培旬實(shí)現(xiàn)并fjitS作,并嗚節(jié)for編譯制導(dǎo)中schedule的參數(shù),使得執(zhí)行時(shí)冋最矯, 寫岀代碼。方眸a和b的
2、初始值如下: 123川11丄J2,3.4,+11丄1a =3.4.5, 丿 + 2b =1丄1并川+ 1. + 2.2打一11丄1輸A:方陣的階n、并行域的線槨數(shù)輸出:c中所有元素之和、程序的執(zhí)行時(shí)冋提示:a,b,c的元素定義為int里,c中所有元素之各定義為long long型。Windows it Bt:用中的clock_tclock( void )函數(shù)得到當(dāng)甫程序執(zhí)行的時(shí)間Linux if 時(shí):include timeval start,end;gettimeofday(&start,NULL);gettimeofday(&end,NULL);coutexecutiontime:,(en
3、d.tv_sec-start.tv_sec)+(double)(end.tv_usec-start.tv-usec)/1000000,seconds,endl;在windows下便用Microsofe Visual Studio編程,澹代碼如下:#include# include#include#define NN 2000intaNNNNL bNNNN;longlong cNN(NN;void solve(int n, int numjhread)int i, j, t, k, time;clockj startTime, endTime;longlong sum;omp_seLnumJhr
4、eads(num_thread);for(i=0;in;i+)對(duì)砸恥栢拒仰biH訓(xùn)始化t=i+1;forQ=0;jn;j+)aij=t+;startTime=clock();sum=0;#pragma omp parallel shared(a,b,c) private(ifj,k) # pragma omp for schedule(dynamic)for(i=0;in;i+)for(j=0;jn;j+)cij=O;for(k=0;kn;k+)ciUl+=aiHk*bkj;for(i=0;in;i+)for(j=0;jn;j+) sum+=cij);endTime=clock();time=
5、endTime-startTime;printfCsum=%lld time=%dmsn,sum,time);int main()int n, num.thread;while(scanfC%d%d&n.&numJhread)!=EOF)solve(n.num_thread);Ireturn 0;2分析矩陣皿乘f?序的執(zhí)行時(shí)間、加速比和效率:方辭階固定為1000,節(jié)點(diǎn)數(shù)分別取1、2、4、8、16和32時(shí),為騷少誤差,毎頊實(shí)驗(yàn)逍行5次,取平均值作為實(shí)驗(yàn)結(jié)果。笞:串行執(zhí)亍時(shí)程序的ftfiBRUl: T = 15.062s加速比=Sff執(zhí)行時(shí)同/并行執(zhí)fiHfB)效率=加速比/節(jié)點(diǎn)數(shù)表1不同節(jié)點(diǎn)數(shù)下
6、程序的ftfiBB(秒)實(shí)驗(yàn)命、12481632第1次16.6408.1724.0782.1251.0930.594第2次16.4228.1564.1722.1411.0780.578第3次16.4068.2664.0782.1251.0940.563第4次16.7818.1724.0792.1091.0940.563第5次16.4228.1714.0782.1251.0930.578平均值16.5342&18744.09702.12501.09040.5752不同節(jié)點(diǎn)數(shù)下程序的加速比圖2不間節(jié)自數(shù)下f?序的加速比不同節(jié)點(diǎn)數(shù)下程序的效率節(jié)點(diǎn)個(gè)數(shù)圖3不同節(jié)目數(shù)下桿序的效率 可修編執(zhí)liWH的分橋
7、:聞著節(jié)點(diǎn)數(shù)的增加,枳序的執(zhí)行時(shí)同減少,大御可ius果中得出,兩著節(jié)點(diǎn)書的Jam 一倍,執(zhí)行時(shí)間減少一半加速比的分林:勵(lì)著節(jié)點(diǎn)數(shù)的增加,f?序的加速比IHO,大視可1從結(jié)果中得岀,R6著節(jié)點(diǎn)書的增期一 倍,加速的應(yīng)的增加接近一倍效率的分橋:Hi著節(jié)點(diǎn)數(shù)的增加,程序的效率逐所械少3.分橋矩辟松乘樺Jf的冋題規(guī)模與效率的關(guān)系:固定節(jié)點(diǎn)數(shù)力4,辻方碎階U 200到1600之間變化,每隔10 0取一彳、值。(為了兩少時(shí)間,每頂實(shí)驗(yàn)可只執(zhí)行1次)S:表2松同節(jié)點(diǎn)釵卞不同冋題規(guī)模桿停的執(zhí)行時(shí)間與效率方陣階數(shù)并行執(zhí)行W同串行執(zhí)行時(shí)間效率2000.0150.0470.7833333000.0160.1091.
8、7031254000.0630.2971.1785715000.1560.6571.0528856000.4061.641.0098527000.9073.5780.9862188001.6096.360.9881919002.57810.1090.98031410003.81214.8910.97658711005.3921.0320.9755112007.34428.7340.97814513009.68837.9370.978969140012.42248.640.978908150015.65660.9380.973077160019.23474.8290.972614不同問題規(guī)模下程
9、序的效率3.1不同冋題規(guī)模下程序的效率問題規(guī)模與效率的關(guān)系分林:陌著冋題規(guī)模的增加,桿序的效率趨于穩(wěn)定,但是略徹有點(diǎn)下降。嵌套街壞中,如果外層備壞迭代次數(shù)較少時(shí),如果將來CPU核數(shù)增)11到一定f?度 的線棺數(shù)將可能小于CPU核數(shù)。另外如果層備壞存在負(fù)我平偷的情況下,很難調(diào)度外層備 壞便之達(dá)到負(fù)我平j(luò)。下面作為例子來講述咖何垮嵌套術(shù)壞并行化,以滿足上述擴(kuò)驛It和負(fù)我平働 需求。一個(gè)串行的矩陣乘袪的因數(shù)代西如下:/I矩陣串行乘法函數(shù)param int*a常向要相乘的第個(gè)矩陣的朋param int row_a -矩陣a的行數(shù)param int col_a -矩眸a的列數(shù)param int 向要想成
10、的第個(gè)矩陣的指ftparam int row_b -矩眸b的行數(shù)param int col_b 矩陣b的列數(shù)param int *c 計(jì)算結(jié)果的矩陣的常針param intc_size -矩眸c的空間大小(總元素個(gè)數(shù))return void -無*/void Martrix_Multiply(int *a, int row_a,int col_a,int* b,int row_b,int col_b,int*c,intc_size)lf(col_a!=row_b|c_sizerow_a*col_b)return;int i,j,k;/#pragma omp for private(i,j,k)
11、for(i = 0;irow_a;i+)int row_i=i*coLa;int row_c=i*col_b;for(j=0;jcol_b;j+) crow_c+j=0;for(k=0;krow_b;k+)crow.c+j+=arowj+k*bk*coLb+j;如果在外層俯壞前面UlliOpenMP的for語句時(shí) M 變成了-個(gè)并行的矩陣乘法函數(shù), 但是這樣簡(jiǎn)單地將貝并行化顯然無法滿足前面所述的擴(kuò)展性需求。其實(shí)可1采用一個(gè)簡(jiǎn)單地方進(jìn)將最外層備壞和第2層循壞合并成一個(gè)Iliff.,T便是采 用合并循環(huán)后的并行實(shí)現(xiàn)。void Parallel_Matrix_Multiply(int *a,int
12、row_a,int col_a,int *bjnt row_b,int col_b,int *c,int c_size)lf(col_a!=row_b)return;int i,j,k;int index;int border=row_a*col_b;可修編i=0;j=0;/#pragma omp parallel private(i,j,k) num_threads(dtn(border,1) tor(index = O;indexborder;index+)i=index/col_b;j=index%col_b;int rowj=i*col_a;int row_c=i*col_b;crow_c+j=0;for(k=0;krow_b;k+)crow_c+j+=arowj+k*bk*col_b+j;從上面代碼可以看出,合并后的(8壞便捷border=row_a*col_b;即等于原來的兩個(gè)循環(huán) 迪界之枳,然后再街壞中it算出原
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 城鄉(xiāng)污水處理和管網(wǎng)建設(shè)工程項(xiàng)目可行性研究報(bào)告寫作模板-申批備案
- 2025年江西陶瓷工藝美術(shù)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年常考版參考題庫含答案解析
- 2025年昆明鐵道職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年常考版參考題庫含答案解析
- 2025年揭陽職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年氫能源行業(yè)發(fā)展動(dòng)態(tài)與前景分析
- 展覽展示服務(wù)合同模板
- 幼兒園支教工作活動(dòng)方案總結(jié)四篇
- 計(jì)件工資勞動(dòng)合同范文
- 酒店轉(zhuǎn)讓簡(jiǎn)單合同范本
- 場(chǎng)攤位的租賃合同年
- 2025年度高端商務(wù)車輛聘用司機(jī)勞動(dòng)合同模板(專業(yè)版)4篇
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 2025長(zhǎng)江航道工程局招聘101人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年黑龍江哈爾濱市面向社會(huì)招聘社區(qū)工作者1598人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 《妊娠期惡心嘔吐及妊娠劇吐管理指南(2024年)》解讀
- 《黑神話:悟空》跨文化傳播策略與路徑研究
- 《古希臘文明》課件
- 居家養(yǎng)老上門服務(wù)投標(biāo)文件
- 長(zhǎng)沙市公安局交通警察支隊(duì)招聘普通雇員筆試真題2023
- 2025年高考語文作文滿分范文6篇
- 零售業(yè)連鎖加盟合同
評(píng)論
0/150
提交評(píng)論