减少交互开销影响的方法.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
减少交互开销影响的方法.ppt

减少交互开销影响的方法 进程间的交互开销取决于许多因素,如进程间交互的数据大小、交互的频率、交互的时空属性等 减少交互开销的一般性方法: 最大化数据局部性; 最小化竞争与Hotspot; 计算与交互重叠; 数据复制或重复计算; 利用优化过的聚合交互操作; 将交互开销相互重叠。 最大化数据局部性 减少进程间交互的数据量 采用恰当的分解与调度策略以利用局部数据执行尽可能多的操作,例如对矩阵乘法,采用二维分布比一维分布时具有更少的共享数据 使用局部数据来存储中间结果,并且只在进行最后结果的计算时,才访问共享数据,例如内积的计算 减少进程间交互的次数 在许多体系结构上,交互的起步时间一般相对比较长 通过对算法进行重新组织,使得对共享数据的访问与使用以成片方式进行,可以减少进程间交互的频率 例如,稀疏矩阵与向量的乘法 最大化数据局部性(续) 对共享数据进行整合,减少交互次数 最小化竞争与Hotspot 数据访问与进程间交互常引起竞争。多个任务同时访问相同的资源的可能情况如: 经过同一条物理链路的多个消息同时传输 对同一个存储块的多个访问同时进行 在同一时候多个进程向同一个进程发送消息 最小化竞争与Hotspot(续) 在二维输出划分下,进行并行矩阵乘法时,对每个块Cij,0 ? i, j p1/2,两个计算公式的比较 计算与交互重叠 进程有时会等待从其它进程上传来的数据以进行后续计算,或等待从其它进程上传来的额外任务 在这段时间内可以安排一些有用的计算,这就是计算与通信重叠 一个简单的方法是尽早地开始进行交互,使得需要利用该交互的结果进行计算之前,交互就已经完成 在大多数情况下,将计算与交互重叠需要编程语言、操作系统与硬件的支持 数据复制或重复计算 在有些并行程序中,多个进程可能需要频繁地对共享数据结构进行只读访问 在消息传递语言中,数据复制更有利,这不仅可以减少交互开销,也有利于简化并行程序的编写 数据复制是有代价的。数据复制将增加程序的存储需求,只能有选择性地采用这种技术来复制一些存储需求相对较小的数据 执行并行程序的进程往往共享一些中间结果,计算这些中间结果也许比通过交互获取需时更少。如FFT的并行计算。 利用优化过的聚合交互操作 许多重要的聚合交互操作在很多并行算法中经常出现,如广播与归约 为了最小化数据传输开销与竞争,已经设计了这些聚合交互操作的优化得很好的实现算法。在许多并行计算机上,生产厂商研制的并行库如MPI内一般都包含这些实现的函数 将交互开销相互重叠 有时,采用并行库内的聚合交互函数效率不高,或者某些聚合交互操作在并行库内并没有实现 * 国防科学技术大学并行与分布处理重点实验室 * 国防科学技术大学并行与分布处理重点实验室 0 1 2 3 7 4 5 6 8 9 10 11 P0: y0(x1,x4,x8);y4(x0,x5,x8 ,x9);y5(x1,x2 x4,x6,x9);y8(x0,x4,x6) P1: y1(x0,x2,x5 ,x6);y2(x1,x3,x5,x6);y3(x2,x7);y7(x3,x6) P2: y6(x1,x2,x5 ,x7,x9 ,x10,x11);y9(x4,x5,x6,x10);y10(x6,x9);y11(x6)

文档评论(0)

gtez + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档