- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行计算同步计算精要
第6章 同步计算 Synchronous Computations 同步计算分为全同步和部分同步 全同步 (full synchronination):所有的进程在一些规则的执行点上的同步。 部分同步(partial synchronization)或局部同步(local synchronization) :在逻辑上相邻的一组进程参与的同步。 同步计算是指那些带有全同步或大量部分同步的计算。 一、全同步及相关技术问题 在消息传递并行计算中,常用的全同步的实现方法有: 障碍、路障(barrier) 计数器实现 树实现 1、障碍(路障)同步(barrier synchronization):在并行系统中,使一组进程取得同步的一种方法。 它在参与障碍同步的每个进程的程序中彼此必须等待的位置设置一个障碍点,当某进程执行到障碍点时暂停,等待所有进程都执行到这个障碍点上,它们才能继续运行。 通常需要同步的进程的程序中有多个障碍点,以同步它们彼此的操作。 障碍同步可应用于: 共享存储器系统 分布存储的消息传递系统 进程不在同一时刻到达障碍点的情况 进程 时 间 P0 P1 … P2 Pn-1 活动 等待 … 障碍 在消息传递系统中,障碍同步通常是由库例程(函数)提供的。 MPI 的障碍同步例程: barrier(comm) 阻塞所有的调用者,直到通信体 (comm)中所有的成员都调用了该例程后,各进程中的 barrier 调用才可返回。 PVM 库也有类似的例程: pvm_barrier( ) 障碍同步例程的实现取决于并行系统的体系结构。 : : : barrier( ); : : : : : barrier( ); : : : : : : : : barrier( ); : : …… 进程 P0 Pp-1 P1 各进程处于等待状态,直到所有的进程都到达barrier调用点为止。 2、集中式计数器实现 :用一个计数器对到达路障的进程数目计数。 计数器的初值为 0; 每个调用路障的进程将计数器增 1,并检查计数器是否已到达路障同步进程总数 n;若未到达 n 值,则使进程转入“挂起” 状态;否则释放该进程及所有其它等待进程。 : : : barrier( ); : : : : : barrier( ); : : : : : : : : barrier( ); : : …… 计数器 计数器路障分为两个阶段: 进入路障阶段 离开路障阶段 如果系统没有路障例程,通常由主进程维护路障计数器: 当从进程到达路障时,主进程对来自从进程的消息计数; 在离开路障阶段中,主进程释放各个从进程。 /*count slaves as they reach barrier*/ for (i = 0; i n; i++) recv(Pany); /* release slaves */ for (i = 0; i n; i++) send(P i ); send(Pmaster); recv(Pmaster); 从主进程代码可以看出:计数器路障的实现的时间复杂性为:О(n)。 以上路障方法的主进程代码: 对应的从进程代码: 3、树实现 :利用树结构实现的同步方法 假设有 8 个进程 P0~ P7,路障同步完成的过程为: 第一级: 当 P1 到达路障时, P1 给 P0 发送消息; 当 P3 到达路障时, P3 给 P2 发送消息; 当 P5 到达路障时, P5 给 P4 发送消息; 当 P7 到达路障时, P7 给 P6 发送消息; 第二级: 当 P2 到达路障且P2已收到P3发来的消息时,P2 给 P0 发送消息; 当 P6 到达路障且P6已收到P7发来的消息时,P6 给 P4 发送消息; 第三级: 当 P4 到达路障且P4已收到P6发来的消息时,P4 给 P0 发送消息。 树型路障实现过程 P0 P1 P2 P3 P4 P5 P6 P7 到达路障 离开路障 树型障碍同步算法(SPMD):假设n是2的整幂次 /* 到达阶段 */ for (i = 0; i log(n); i++) if (myid % 2i == 0) if (myid % 2i+1 == 0) recv(Pmyid+2i); else send(Pmyid-2i); /* 离开阶段 */ for (i = log(n) -1; i = 0; i- -) if (myid % 2i == 0) if (myid % 2i+1 == 0) send(Pmyid+2i); else recv(Pmyid-2i); 局部同步 全同步要求所有的进
您可能关注的文档
- 模拟电子技术基础第7讲静态工作点的稳定讲述.ppt
- [教程]PPT制作入门及思考解读.ppt
- 模板专项施工方讲述.doc
- 模拟量控制和通信讲述.ppt
- 年会主题形式遴选方案策划精要.pptx
- 年产80000吨铜棒加工项目可行性研究报告(目录)精要.doc
- 模板及支撑施工方案讲述.doc
- 年会晚会策划方案3篇精要.doc
- 年会来临,企业如何利用微信企业号抢红包精要.pptx
- 年会表彰优秀员工颁奖词精要.doc
- [中央]2023年中国电子学会招聘应届生笔试历年参考题库附带答案详解.docx
- [吉安]2023年江西吉安市青原区总工会招聘协理员笔试历年参考题库附带答案详解.docx
- [中央]中华预防医学会科普信息部工作人员招聘笔试历年参考题库附带答案详解.docx
- [保定]河北保定市第二医院招聘工作人员49人笔试历年参考题库附带答案详解.docx
- [南通]江苏南通市崇川区人民法院招聘专职人民调解员10人笔试历年参考题库附带答案详解.docx
- [厦门]2023年福建厦门市机关事务管理局非在编工作人员招聘笔试历年参考题库附带答案详解.docx
- [三明]2023年福建三明市尤溪县招聘小学幼儿园新任教师79人笔试历年参考题库附带答案详解.docx
- [哈尔滨]2023年黑龙江哈尔滨市木兰县调配事业单位工作人员笔试历年参考题库附带答案详解.docx
- [上海]2023年上海市气象局所属事业单位招聘笔试历年参考题库附带答案详解.docx
- [台州]2023年浙江台州椒江区招聘中小学教师40人笔试历年参考题库附带答案详解.docx
文档评论(0)