- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
并行程序答案.doc
第二讲:
问题(1)
将数组A均匀划分成m各片段,每个数组片段最多有「(n+ni-l)/ni =个元素。
每个数组片段分别由一个处理器负责局部求和,所得之和存储在该片段的第一个 元素上,共需要[(n+m-l)/m]-l个CYCLE
按照二叉树规约的方式,对齐个处理器局部求和的结杲进行求和。该二叉数的深 度为log (m),即共需要log (m)个CYCLE
因此,总共需要[(n+m-1) /m]-1+log (m)个CYCLE, n个存储单元
问题(2)
BSP模型假定并行计算机采用分布存储结构:各个处理器有口己的局部存储空间、 月?只能访问t己的局部存储空间。
假设在开始计算之前,数组A被均匀划分成ni各片段,每个数组片段最多有 [(n+m-l)/m]个元素,分别存储在一个处理
器的局部存储空间。
BSP上的并行求和算法:共需要log(m)+l个Superstepo在第一个Superstep 上,各个处理器分别对自己本地存储的数
组片段进行局部求和,所得之和存储在该片段的第一个元素上。按照二叉树规约 的方式,对各个处理器局部求和的
结果进行求和。二叉树上每一层的规约运算,分别用需要一个Superstep,其中 的每个求和分别由一个处理器负责。
该二叉数的深度为log (m),总共需要log (m)个Superstepo 第一个Superstep的吋间:在每个处理器上,
最多需要执行[(n+m-l)/m]-1或者个加法运算 从相邻处理器获取对方所求只和,为第二个Superstep做准备 与其它处理器同步
笫二个、及以后各Superstep的时间:在每个处理器上,
最多需要执行1个加法运算
从相邻处理器获取对方所求之和,为下一个Superstep做准备 与其它处理器同步
因此,总的时间开销为:([(n+m-l)/m]-l)*Tl+T2+T3+(Tl+T2+T3)*log(m)。总的 存储开销为n,以存储A的元素
作业四:
问题(1)
有一部分计算,只能串行做;
并行的计算任务,也不能完全均衡的分配给各个处理器/执行内核 并行程序执行的计算总量一般超过串行程序。如:
各处理器为确定门己计算任务需耍的计算 pthread并行程序屮创建线程、互斥锁的管理和操作 一些操作需要在多个处理器/执行内核上重复执行
问题⑵
假设总的计算量为W,在M个处理器上并行执行时,
每个处理器/执行内核承担的并行计算量为0. 85W/M
每个处理器/执行内核上,为执行所承担的并行计算任务,需要执行的额外计算
量为 0. 001*0. 85W/M
需要串行执行的计算量为0. 15W 因实现并行计算而引发的新增串行计算量为0. 015W
在M个处理器上,可得到的最大加速比为:W/ (0. 85W/M + 0. 001*0. 85W/M + 0. 15W
+ 0. 015W)二 M/(0. 85085+0. 165M)
为了使得并行计算效率至少为70%, (M/(0. 85085+0. 165M))/M70%,因此,M=3
问题⑶
并行程序并吊行程序运行更慢
并行程序屮,对粒子对之间作用力的计算进行了并行化,划分到各个处理器上。 但是,每执行一个粒子对的计算后
都要执行一次互斥锁的加锁和开锁操作。这种互斥锁操作的开销超过了粒子对作 用力本身的计算开销。随这参加的
线程数量越大,参与互斥锁竞争的线程越多,引起一次互斥锁操作的开销也增加
作业五:
问题⑵
并行算法
步骤0:将N个元索均匀划分成P份,每个处理器分别采用快速排序算法,对其 中一份进行排序
步骤1:将1+1号处理器上的排序结果发送给第1号处理器,在第I号处理器上 采用归并排序,合并排序结果(1=0. 2 P/2)
步骤2:将1+4号处理器上的排序结果发送给第I号处理器,在第I号处理器上 采用归并排序,合并排序结果仃二0、4 P/4)
步骤Log (P):将P/2号处理器上的排序结果发送给第0号处理器,在第0号处 理器上采用归并排序,合并排序结果
加速比计算
步骤0的运算时间:0(N/P*log(N/P))
步骤1的运算时间:0(N/P)
步骤2的运算时间:0(2*N/P) 步骤Log(P)的运算时间:0(N/2)
并行算法的时间
0 (N/P*log (N/P))+0 (N/P)+0(2*N/P)+??? +0(N/2)0(N/P*log(N/P)) +0(N/P) *log
(P)
串行算法的时间0(N*log(N))
加速比〈0 (N*log (N))/(0 (N/P*log (N/P)) +0 (N/P) *log (P))
作业六
问题⑵
并行算法
步骤0:将N个元素均匀划分成P份,每个处理器分别采用快速排序算法,对其 中一份进行排序
步骤1:将1+1号处理器上的排序结果发送给第I号处理器,在第T
文档评论(0)