- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机系统结构课件[精选]
综合前面介绍的三种主要的显式并行编程模型(数据并行、消息传递、共享变量),其主要特征比较如表6.3所示。 表6.3 数据并行、消息传递和共享变量并行编程模型的主要特征 特征 数据并行 消息传递 共享变量 控制流(线程化) 单 多 多 同步 松散同步 异步 异步 地址空间 单 多 单 交互 隐式 显式 显式 数据分配 隐式或半显式 显式 隐式或半显式 3.描述程序并行性的指令 在机器语言中,描述派生和汇合关系的并行控制指令通常用FORK(派生)和JOIN(汇合)指令。 FORK A 功能:1)根据标记符A派生对应的新进程,即准备好启动新进程或恢复原来进程继续执行时的现场。 2)执行FORK指令的原进程,继续在原来分配给它的处理机上运行; 3)把空闲处理机分配给FORK指令派生的新进程。 JOIN N N 为当前并行任务的数量 功能: 1)JOIN指令有一个计数器,初值为0,当执行JOIN指令时,计数器加1,并与N比较。 2)若计数器值等于N ,说明它执行中的第N个进程经过JOIN指令,则允许该进程通过JOIN指令,在其所在处理机上继续执行后继指令。并把计数器清0。 3)若计数器值小于N ,则必须等待N个并行任务中尚未执行或虽然执行但未结束的进程到达JOIN指令。现在执行JOIN指令的这个进程可以先结束,并把占用的处理机释放。 例 parfor i:=1 to n do /类Pascal语言/ begin process(i); end; parfor语句用来描述SPMD(单程序多数据流)的数据并行性,其中process(i)表示某一个进程。尽管所有的进程都执行相同的程序代码,但各进程所需的参数是不相同的。 3) forall语句 当parfor语句中的所有分进程被分派到指定的处理机上并行执行时,可使用forall语句进行描述。其格式如下: /类C语言/ forall(i=1;i=k;i++) { process(i); } 或 /类Pascal语言/ for all Pi where 0≤i≤k do process(i); end for; 4) 同步 同步是在时间上强迫使各进程在某一点必须相互等待。 在并行算法的各进程异步执行过程中,为了确保各处理机的正确工作顺序以及对共享可写数据的正确访问(互斥访问),程序员需在算法的适当点设置同步点。 下面以MIMD多处理器系统中n个数的求和为例,说明如何用同步语句lock和unlock来确保对共享可写数据的互斥访问。 假定系统中有p个处理器P0,P1,…,Pp-1,输入数组A=(a0,a1,…,an-1)存放在共享存储器中,全局变量用于存放结果,局部变量L包含各处理机计算的部分和。lock和unlock语句实现临界区操作,锁语句是个原子性操作。在for循环中各进程异步地执行各语句,并结束在“end for”。 算法 共享存储器多处理器上的求和算法 输入:A=(a0,a1,……,an-1),处理器数p 输出:S=∑ai begin S=0; for all Pi where 0≤i≤p-1 do L=0; for j=i to n step p do L=L+aj; end for; lock(S); S=S+L; unlock(S); end for; end; 5) 通信 通信是在空间上对各并发执行的进程施行数据交换,通信可使用通信原语来表达。 在共享存储器的多处理机中,可使用global read(X,Y)和global write(U,V)来交换数据, 前者将全局存储器中数据X读入局部变量Y中, 后者将局部数据U写入共享存储变量V中; 在分布存储器的多计算机中,可使用send(X,i)和receive(Y,j)来交换数据, 前者是处理机发送数据X给Pi, 后者是处理机从Pj接收数据Y。 下面以MIMD-DM多计算机系统中矩阵向量乘法为例说明。 假定分布式连接拓扑为环,矩阵A和向量X划分成p块,A=(A1,…,Ap)和X=(x1,…,xp),其中Ai的大小为n×r,xi的大小为r。 假定有p≤n台处理机,r=n/p为一整数。为了计算y=AX, 先由处理机i计算zi=Aixi(1≤i≤p),再累加求和z1+…+zp。 如果Pi开始在其局存中保存B=Ai和w=xi(1≤i≤p),则各处理机可局部计算乘积Bwi; 然后采用在环中顺时针循环部分和的方法将这些向量累加起来; 最终输出向量保存在P1中。对于每个处理器都执行如下算法: 算法 分布式存储
您可能关注的文档
最近下载
- 蒸压加气混凝土砌块施工技术课件.ppt VIP
- 沥青路面再生利用项目可行性研究报告项目建议书.docx
- 医学课件-老年卧床患者压力性损伤的预防和护理进展.pptx
- 电力系统经济学原理习题解答 全.doc VIP
- 数据中心机房工程施工组织设计方案.pptx VIP
- 传统文化与修身(鲁东大学)知到智慧树章节答案.docx VIP
- 湖南文艺出版社(2024)新教材小学二年级音乐上册第五课《草原就是我的家》精品课件.pptx VIP
- 益智课堂数字华容道教学课件.pptx VIP
- (2025秋新版)部编版二年级道德与法治上册《第8课 我为班级作贡献》教案.docx VIP
- 尼科尔森《微观经济理论-基本原理与扩展》(第9版)课后习题详解(第18章--不确定性和风险厌恶).doc VIP
文档评论(0)