并行处理课件

并行处理课件

ID:30821800

大小:82.50 KB

页数:7页

时间:2019-01-04

并行处理课件_第1页
并行处理课件_第2页
并行处理课件_第3页
并行处理课件_第4页
并行处理课件_第5页
资源描述:

《并行处理课件》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、2.14点对点通信UJ木节借助图形/图象变换中的实例程序,引入点对点通信机制实现并行。例2.14.1在分辨率为SIZE*SIZE(SIZE为2的幕)的黑白带灰度的显示屏幕上:左上角为坐标原点,X轴向下,Y轴向右;0为白,1为黑。用NUMNODES(亦为2的幕,且

2、台处理机*/for(I二0;I〈SIZE**2;I++){recv(oldrow,oldcol,newvalue,Pany);/*消息接收语句2,从处理机接收变换后的新值*/temp_map[oldrow][oldcol]=newvalue;}/*开辟临时存储,暂存变换后的值*/for(I=O;T

3、;oldrow<(row+SIZE/1VUMNODES);oldrow++)for(oldcol二0;oldcol〈SIZE;oldcol++){newrow二o1drowm16*16;newcol二oldcolml6*16;/*m是整除运算符*/newvalue=map[newrow][newcol];send(oldrow,oldcol,newvalue,Pmaster);}/*消息发送语句2,把一个象素点的变换结果返回主进程*/程序中包含两个消息发送语句和两个消息接收语句,它们配成两对。第一对,主进程里的消息发送语句1“sen

4、d(rov,Pi)”,把一个行号row发送給第i个子进程(或称“从进程”)pio通过循环语句:for(1-0,row-0:KNUMNODES;I++,tov+二SIZE/NUMNODES)从0号进程起,一直到NUMNODES-1号进程止,NUMNODES个进程无一遗漏。而交給它们的row并不相同:每当i上调1,row皆要跳过SIZE/NUMNODES,实为分摊給一个进程的工作量。结合子进程里的循环语句:for(oldrow=row;oldrow<(row+SIZE/NUMNODES);oldrow++)我们得知:屏幕被横向均分成

5、NUMNODES份,每个进程承担SIZE/NUMNODES个连行构成的一等份。而子进程里的消息接收语句1arecv(row,Pmaster)",则从主进程Pmaster那里获取一个行号作为起始行,计算它包含SIZE/NUMNODES个连行的那一份。第二对,子进程里的消息发送语句2“send(oldrow,oldcol,newvalue,Pmaster);}”,把一个由平面直角坐标〈oldrow,oldcol>标记的象素点,连带计算出的新图像值newvalue,向主进程Pmaster报告。通过双重循环语句:for(oldrow=row

6、;oldrow<(row+STZE/NUMNODES);oldrow++)for(oldco1=0;oldcol,无论其原来的图像值如何,都向它所在的小正方形左上角看齐

7、,即以左上角〈oldrowml6*16,oldcolml6*16>原来的图像值map[oldrowml6*16][oldcolml6*16]作为它的新值newvalueo此即所谓的"马赛克”效应。程序中的临时存储temp_map,用来逐点收集新的图像值;待全屏新值到齐,集屮地向显示缓冲区转移,』免变换过程的“不堪入目”。设map的初值:map[i][j]二(i+j)/(2*(SIZE-l));0Wi,j〈SIZE。于是全白点0与全黑点1,原图各拥有一个。变换后:全白点,16*16-1个;全黑点消失。@例2.14.2在分辨率为SIZE

8、*SIZE(SIZE为2的幕)的显示屏幕上,用NUMNODES(亦为2的幕,且o主进程:for(I二O;I

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。