一种改进的OpenMPGuided调度策略研究_第1页
一种改进的OpenMPGuided调度策略研究_第2页
一种改进的OpenMPGuided调度策略研究_第3页
一种改进的OpenMPGuided调度策略研究_第4页
一种改进的OpenMPGuided调度策略研究_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 种改进的严 调度策略研究 表 在曙光机上的测试结 表 在刀片上的测试结果 单位:秒 果(单位:秒) 涮度策略 】 】 线程数 】 】 】 】 】 】 】 】 】 】 】 】 】 】 】 】 蒯度策略 】 】 矗 】 】 线程数 】 】 , 目 鼢 , , 】 】 【 】 】 】 表 在曙光机上的测试结 果(单位:秒) 表 在刀片上的测试 结果(单位:秒 州艘策略 】 矗 矗 矗 矗 蒯度策略 】 线程数 线程数 】 】 】 】 】 , 】 , 坼 矾, 矾 在旧刀片上的测试结果 表 在刀片上的测试 结果(单位:秒) 刘于每一个循环结构,我们均采用和曙光服 务器相同的调度策略进行了测试测试过程

2、中, 采用了至个线程,测试结果分别如表一表 所示。 表 州发策略 :, 线程数 ” 在刀片上的测试结果 单位:秒) : 撕 粥 州艘策略 】 , 】 线程数 】 矾( 矾 实验结果分析 从表一表可以看,不同的凋度策略和 参数在曙光服务器和刀片上对性 能的影响基本相同对于四个测试程序,默认的 , , 一种改进的严 调度策略研究 调度性能都是最差的。对于、 和凋度,参数对调 度性能的影响比较小。 程序是一个不规则的循环结构。从表 和表可以看出,调度和(,) 进行一次凋度的开销往往并不相同,编译器在为 线程分配迭代块时,一股首先锁住所有线程共享 的任务队列,然后在临界区( )计 算需要分配的迭代块大

3、小,并更新任务队列,最 后解锁。调度采用的是制导订 调度可以获得较好的性能,其次是 调度策略如图所示,程序的迭代可以分 为前面、中间和后面三个部分。其中,在前面部 分和后面部分的迭代中,每次迭代的计算量都很 小,而中间部分的迭代的计算量都特别大对于 这样的循环结构,和默认的调度都 会导致获得中问那部分迭代的线程作量非常 句中的参数来直接指定迭代块大小, 而凋度则需要在每次调度时计算迭代块 大小。也就是说,调度对应的临界区代 码量少于调度的临界区代码量。例如在 编译中,调度对应的临界区代码为 行,而调度对应的临界区代码为行 凶此,执行一次调度的开销要少于执行 一次调度的开销。但是,调度每次 分配

4、的迭代块多于,斟此,对于同一个 程序,采用策略的调度次数要少于策略 对于表中的例子,采用策略需要进行 次调度,而采用策略只需要次调度。 如果综合考虑一次调度的额外开销和调度次数, 凋度和的总额外开销近乎相似。 从表、表、表、表中的测试结果可以看出, 对递增结构的程序和规则的程序采用 、和调度时的性能差 不多。 大,而其它线程的作量非常小,从而导致严重 的负载不半衡。调度和(,)调 度会将计算量大的迭代和计算量小的迭代均匀 地分配给各个线程,凶此可以获得较好的调度性 能。这两个凋度策略的区别在于(,)在 进入循环前就将所有迭代分配完毕,而 调度则是在一个线程执行完当前迭代块后冉给 它分配下一个迭

5、代块。 论文的研究指出:“如果计算负载是随迭 代变量增大而减小的,则应避免使用指数调度, 凶为它的前几个子块大小都很大,可能导致负载 不均衡。”从表的测试结果可以看,递减结 构的程序采用(,)、和 调度时能够获得最佳性能,而采用 调度策略时性能较差。这一点与论文】 的结论一致、对于递减循环结构,计算负载随着 迭代变量增大而减小,而策略划分的迭代 块大小也是由大变小,且呈指数下降凶此,对 于递减循环结构采用调度会导致前面的 迭代块计算量非常大,而后面的迭代块计算量非 常小,从而引起负载不半衡、在曙光服务器上 当线程数大于时,随着线程数的增加,程 序的执行时间没有继续减少、这是【于程序 访问存储单

6、元时具有一定的不规则性,当线程进 一步增多时,存储访问的局部件被破坏了 论文采用调度次数来衡量凶调度产生的 额外开销,认为对递增结构的循环, “应避免使 综合表一表的测试结果可以看出,在 程序中采用策略和(,) 策略的调度性能比较好。策略刘 策略进行了改进,调度性能介于和 之间、由于调度在编译期就决定了 各个处理器的迭代块大小,凶此无法根据程序运 行时处理器的负载动态调整此外,当调度非规 则循环结构或者处理器件能不一致时,调度 很容易现负载不半衡。如在表、表、表 中,(,)策略的调度性能就比 和策略的凋度性能差。综合前面的分析, 我们可以认为,在大部分的情况下,策 略都能获得最好的调度性能。

7、总结及以后的工作 随着多核处理器的问世,多线程程序设计已 经成为一个不可回避的问题。在采用编 用静态调度策略和分块大小较大的动态凋度策 略、”但是,在实际的编译器中,不同调度策略 一种改进的严 调度策略研究 程时,调度策略和参数的选择列于一个 程序的性能具有一定的影响,但选择恰当的调度 策略和参数往往跟具体的运行环境和循环结构 有关。 现有的研究作(如文献和)都表明, 对于递减型的循环结构,采用调度策略时 存在严重的负载不均衡问题。本文借鉴论文】 的闶度策略,对循环结构的前的迭代采用 阋度,后面的迭代采用调度, 从而改进了标准所指定的调度策 略。此外,针对不同的循环结构,我们在不同的 多核处理器上对不同的调度策略进行测试和分 析。本文的进一步作可以研究调度策略在机 群系统中的应用、 , , , , ,(),: 多核程设计技

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论