- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
并行算法的设计与分析
第3版
五.并行算法的可扩展性(可扩放性,Scalability)
2. 并行算法的可扩展性度量
并行算法的可扩展性是指度量并行系统、并行算法、并行程序能否有效利用不断增加的处理器的能力
增加处理器数目和扩大问题规模有可能提高加速比
影响加速的因素:
求解问题中串行执行部分比例
并行处理引起额外开销(通信、等待、竞争、同步、冗余操作)
增加的处理器数目超过了算法中的并发程度
增加问题规模有利于提高加速
较大的问题规模可提供较高的并发度
额外开销的增加可能慢于有效计算的增加
算法中串行执行部分的比例可能随着问题规模的增加而缩小
2. 并行算法的可扩展性度量
并行算法的等效率函数
令tc(i)和tO(i)分别为第i个处理器的有用计算时间和额外开销时间,Tc= tc(0) +tc(1)+…+ tc(p-1), TO= to(0) +to(1)+…+ to(p-1)。 令Tp为p个处理器运行并行算法所需的时间,则Tp = tc(i)+tO(i)并且pTp = Tc + TO
设问题规模W为最佳串行算法完成的工作量,则W = Tc
Sp= Tc /Tp= Tc / ((Tc+To)/p)= p / (1+ To / Tc) = p / (1+ To / W)
Ep= Sp /p=1/( 1+ To / Tc )=1/ (1+ To / W)
为了维持效率Ep不变,当p增大(TO增大)时,必须增加计算量W( Tc)。
等效率函数fE(p):问题规模W随处理器数目p变化的函数。
并行算法可扩展性判断标准
为了维持效率不变,当p增大时,若仅需增加较小的工作量(问题规模)W——W随p增大而线性/亚线性增长,则称并行算法具有良好的可扩展性;否则,称为不可扩放的。
1.5 并行算法的同步与通信
一、并行算法的同步
同步是在时间上强使各执行进程在某一点必须互相等待,确保各进程的正常顺序和对共享可写数据的正确访问。
可用软件、硬件和固件的办法来实现同步:
SIMD-SM(PRAM)/SIMD-IN上并行算法由硬件实现同步。
MIMD-SM (APRAM) 上并行算法由软件(算法)实现同步:例如,使用lock和unlock等同步语句显式设置临界区实现多个并发进程(线程)对共享变量的互斥访问。算法复杂度包括进程生成时间、进程结束同步时间。
同步示例
MIMD-SM (APRAM)上的异步并行求和算法
输入:A=(a0,…,an-1), 处理器数p
输出:S=Σai
Begin
(1) S=0; //共享全局变量(和) (2.3) lock(S) // 同步
(2) for all Pi where 0≤i≤p-1 para-do S=S+L;
(2.1) L=0 ; //局部变量(和) (2.4) unlock(S)
(2.2) for j=i to n step p do end for
L=L+aj ; End
end for
|--------------- 并发(并行)执行 ---------------- |
P0 P1 …… P p-2 Pp-1
(主)进程0 进程1 …… 进程p-2 进程p-1
i=0 i=1 …… i= p-2 i= p-1
|
文档评论(0)