版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2、附件是热传导问题的串行程序示例。请根据该实例编写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的范围时,并行性能略有提高。计算划分的任务粒度越小,并行程序中任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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际合作锅炉房改造合同
- 农田水利挖掘机施工合同
- 农村水厂设备维修服务合同
- 2023年上海市中考物理一轮复习-第6章 压力与压强 第1节 密度
- 污水处理厂污泥处理设施建设合同
- 中南林业科技大学《机械设计》2022-2023学年第一学期期末试卷
- 2019-2021年云南省中考物理试题分类汇编3-实验题
- 中南大学《水污染控制工程》2022-2023学年第一学期期末试卷
- 中南大学《社会调查与研究方法》2021-2022学年第一学期期末试卷
- 中南大学《数字电子技术A》2022-2023学年第一学期期末试卷
- 房屋加固施工组织设计方案
- 一企一档模板
- 有限空间作业安全检查表
- 统计学-中国某大学近三年(2018-2021)硕士研究生招生考试自命题科目考试试题
- 新生儿液体外渗的处理赵静
- 城投债的2023:人口迁徙与产业模型市场预期与投资策略
- UL10368线材技术规格参照表
- JJG 1030-2007超声流量计
- GB/T 3452.2-2007液压气动用O形橡胶密封圈第2部分:外观质量检验规范
- GB/T 21415-2008体外诊断医疗器械生物样品中量的测量校准品和控制物质赋值的计量学溯源性
- GB/T 11253-2019碳素结构钢冷轧钢板及钢带
评论
0/150
提交评论