版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2、附件是熱傳導(dǎo)問(wèn)題的串行程序示例。請(qǐng)根據(jù)該實(shí)例編寫pthread并行程序。serial: : atomic: :可以看出mtxserial: : atomic: : serial: : atomic: : serial: : atomic: : serial: : atomic: : serial: : atomic: : serial:found :foundatomic: :primescost=13.primescost=1.primescost=1.primesserial: : atomic: : 25—35的范圍時(shí),并行性能略有提高。計(jì)算劃分的任務(wù)粒度越小,并行程序中任NXPROB*NYPROB*ntsu2。NXPROB,NYPROB,nts,thread_num。FILE:SerialHEAT2DExample-CThisexampleisbasedonatwo-dimensionalheatequation Thetemperatureiscomputedtobehighinthemiddleofthezeroatthe Theboundariesareheldatzerothe Duringthetime-step,anarraycontainingsisused;thesesalternatebetweenolddataandnew#include<stdio.h>#include<stdlib.h>#include<time.h>#include<unistd.h>//#include<math.h>#include<stdlib.h>#include#defineNXPROB#defineNYPROB#defineCLOCK_PER_SEC((clock_t)1000)#defineMax_Thread_Num256#define struct{floatcx;floatcy;intnts;}parms={0.1,0.1,intfloatinttotalThread;intiz,it;intposX,intcolumn, mtx;{ *pMyStatus=threads;intloc_posX,loc_posY;intix,while((*pMyStatus)!=pthread_self())pMyStatus++;loc_posX=posX;loc_posY=posY+=if(posY>={posX+=row;posY=1;}{for(ix=loc_posX;ix<loc_posX+row&&ix<NXPROB-1;{for(iy=loc_posY;iy<loc_posY+column&&iy<NYPROB-1;{u[1-iz][ix][iy]=u[iz][ix][iy]+parms.cx*(u[iz][ix+1][iy]+u[iz][ix-1][iy]-2.0*+parms.cy*(u[iz][ix][iy+1]+u[iz][ix][iy-1]-2.0*}}if(it>=parms.nts)}return(void*)0;}void{intix,voidinidat(),prtdat(),inti,for(ix=0;ix<=NXPROB-1;{u[1][ix][0]=}for(iy=0;iy<=NYPROB-1;{u[1][0][iy]=}totalThread=pthread_cond_init(&cMaster,NULL);pthread_mutex_init(&mtx,NULL);posX=1;posY=if(thread_num>Max_Thread_Num)thread_num=Max_Thread_Num;if(thread_num%2==1)thread_num-=1;column=(NYPROB-2+2)/row=(NXPROB-2+thread_num/2-1)/(thread_num/for(i=0;i<thread_num;while(totalThread!=thread_num)pthread_cond_wait(&cWorker,&mtx);iz=0;for(it=1;it<=parms.nts;{totalThread=while(totalThread!=thread_num)pthread_cond_wait(&cWorker,&mtx);iz=1-iz;}printf("%dthreadnum:%d\n",totalThread,thread_num);prtdat(NXPROB,NYPROB,&u[iz][0][0],"final_p.dat");for(i=0;i<thread_num;i++)pthread_join(threads[i],NULL);}int{structtimespects,te;clock_tbegin,end;doubleserial_cost,//floatintix,iy,iz,voidinidat(),prtdat(), inidat(NXPROB,NYPROB,u);{{{v[i][j][k]=}}}prtdat(NXPROB,NYPROB,u,"initial.dat");begin=clock();doublea=//printf("a:cost=%-15.10f\n",a/CLOCK_PER_SEC);clock_gettime(CLOCK_REALTIME,&ts);for(ix=0;ix<=NXPROB-1;{u[1][ix][0]=}for(iy=0;iy<=NYPROB-1;{u[1][0][iy]=} Iterateoveralliz=0;for(it=1;it<=parms.nts;{iz=1-}end=doubleb=clock_gettime(CLOCK_REALTIME,&te);doubleserial_costs=te.tv_sec-ts.tv_sec+(double)(te.tv_nsec-ts.tv_nsec)/NANO;printf("serial:cost=%-15.10f\n",serial_costs);//doubles_cost=b-//printf("serial:cost=%-15.10f\n",serial_cost);{{{u[i][j][k]=}}}begin=a=//printf("a:cost=%-15.10f\n",a/CLOCK_PER_SEC);doublesyns_cost=te.tv_sec-ts.tv_sec+(double)(te.tv_nsec-ts.tv_nsec)/NANO;printf("syn:cost=%-15.10f\n",syns_cost);printf("speedup=%-15.10f\n",serial_costs/syns_cost);end=clock();b=//printf("b:cost=%-15.10f\n",b/CLOCK_PER_SEC);syn_cost=b-a;} update(nx,ny,u1,u2)intnx,ny;float*u1,{intix,for(ix=1;ix<=nx-2;{for(iy=1;iy<=ny-2;{*(u2+ix*ny+iy)= parms.cx*(*(u1+(ix+1)*ny+iy)+*(u1+(ix-1)*ny+iy)2.0* )parms.cy*(*(u1+ix*ny+iy+1)+*(u1+ix*ny+iy-1)2.0* }}} inidat(nx,ny,u1)intnx,ny;/*floatu1[nx][ny];*/float*u1;{intix,for(ix=0;ix<=nx-1;{for(iy=0;iy<=ny-1;{/*u1[ix][iy]=(float)(ix*(nx-ix-1)*iy*(ny-iy-1));*(u1+ix*ny+iy)=(float)(ix*(nx-ix-1)*iy*(ny-iy-}}}*subroutineprtdat(nx,ny,u1,fnam)int
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東警官學(xué)院《生物質(zhì)能轉(zhuǎn)化原理與技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東江門中醫(yī)藥職業(yè)學(xué)院《實(shí)驗(yàn)安全與現(xiàn)場(chǎng)急救》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工商職業(yè)技術(shù)大學(xué)《廣告設(shè)計(jì)與策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財(cái)貿(mào)職業(yè)學(xué)院《英語(yǔ)綜合技能2》2023-2024學(xué)年第一學(xué)期期末試卷
- 《危害申報(bào)管理》課件
- 感恩企業(yè)培訓(xùn)課件
- 《化學(xué)動(dòng)力學(xué)的任務(wù)》課件
- 共青科技職業(yè)學(xué)院《工業(yè)機(jī)器人應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛州職業(yè)技術(shù)學(xué)院《中國(guó)通史現(xiàn)代》2023-2024學(xué)年第一學(xué)期期末試卷
- 皮帶系統(tǒng)安全培訓(xùn)課件
- 【MOOC】隧道工程-中南大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- ISO27001信息安全管理體系培訓(xùn)資料
- 紅色經(jīng)典影片與近現(xiàn)代中國(guó)發(fā)展學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 劇作策劃與管理智慧樹知到期末考試答案2024年
- 鐵路基礎(chǔ)知識(shí)考試題庫(kù)500題(單選、多選、判斷)
- 加拿大礦業(yè)政策
- 客情關(guān)系的建立和維護(hù)
- 2022年合理使用抗生素試題
- 簡(jiǎn)單娛樂(lè)yy頻道設(shè)計(jì)模板
- 110kV變壓器保護(hù)整定實(shí)例
- 銷售顧問(wèn)初級(jí)認(rèn)證筆試題
評(píng)論
0/150
提交評(píng)論