- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精品文档
并行排序算法
先简单说一下给的 A,B,C 三种算法 ( 见上面引用的那篇博客 ) ,A 算
法将耗时的平方和开平方计算放到比较函数中, 导致 Array.Sort 时,
每次亮亮比较都要执行平方和开平方计算,其平均算法复杂度为
O(nlog2n) 。 而 B 将平方和开平方计算提取出来,算法复杂度降低
到 O(n) ,这也就是为什么 B 比 A 效率要高很多的缘故。 C 和 B 相
比,将平方函数替换成了 x*x ,由于少了远程函数调用和 Pow函数
本身的开销,效率有提高了不少。我在 C 的基础上编写了 D算法, D
算法采用并行计算技术, 在我的双核笔记本电脑上数据量比较大的情
况下,其排序效率较 C要提高 30%左右。
下面重点介绍这个并行排序算法。 算法思路其实很简单, 就是将
要排序的数组按照处理器数量等分成若干段, 然后用和处理器数量等
同的线程并行对各个小段进行排序, 排序结束和, 再在单一线程中对
这若干个已经排序的小段进行归并排序,最后输出完整的排序结果。
考试大考虑到和 .Net 2.0 兼容,没有用微软提供的并行库,而是用
多线程来实现。
下面是测试结果:
n A B C D
32768 0.7345 0.04122 0.0216 0.0254
。
1欢迎下载
精品文档
65535 1.5464 0.08863 0.05139 0.05149
131072 3.2706 0.1858 0.118 0.108
262144 6.8423 0.4056 0.29586 0.21849
524288 15.0342 0.9689 0.7318 0.4906
1048576 31.6312 1.9978 1.4646 1.074
2097152 66.9134 4.1763 3.0828 2.3095
从测试结果上看, 当要排序的数组长度较短时, 并行排序的效率
甚至还没有不进行并行排序高, 这主要是多线程的开销造成的。 当数
组长度增大到 25 万以上时,并行排序的优势开始体现出来,随着数
组长度的增长,排序时间最后基本稳定在但线程排序时间的 74% 左
右,其中并行排序的消耗大概在 50%左右,归并排序的消耗在 14%左
右。由此也可以推断,如果在 4CPU的机器上,其排序时间最多可以
减少到单线程的 14 + 25 = 39% 。8 CPU 为 14 + 12.5 = 26.5% 。
目前这个算法在归并算法上可能还有提高的余地, 如果哪位高手
能够进一步提高这个算法,不妨贴出来一起交流交流。
下面分别给出并行排序和归并排序的代码:
并行排序类 ParallelSort
。
您可能关注的文档
- 年终结账需注意事项.pdf
- 幸福街道立体化防控体系建设.pdf
- 幼儿口才朗读教材.pdf
- 幼儿园-组织结构图-word版.pdf
- 幼儿园大班数学试卷(3).pdf
- 幼儿园大班数学试卷[1](1).pdf
- 幼儿园奖状格式.pdf
- 幼儿园家委会工作总结11563.pdf
- 幼儿园家长沟通技巧.pdf
- 幼儿园小班开展绘画活动研究.pdf
- 浙教科学七年级科学下册第二章 对环境的察觉第3节 耳和听觉.ppt
- 浙摄影版小学信息技术四年级上册第二单元第12课课件_汇编作文集.ppt
- 浙教科学七年级科学下册第二章 对环境的察觉第6节 透镜和视觉.ppt
- 浙教科学七年级科学下册第二章 对环境的察觉第2节 声音的产生生和传播.ppt
- 中班《数字宝宝》.ppt
- 云教版劳动与技术四年级上册7 制作纸袋.ppt
- 浙教科学七年级科学下册第三章 运动和力第1节 机械运动.ppt
- 浙教科学七年级科学下册第三章 运动和力第7节 压强.ppt
- 浙教科学七年级科学下册第一章 代代相传的生命第5节 植物生殖方式的多样性.ppt
- 浙摄影版小学信息技术四年级上册第三单元第14课课件_邮件传祝福.ppt
文档评论(0)