[发明专利]一种基于任务窃取的任务调度方法及系统有效
申请号: | 201710290460.6 | 申请日: | 2017-04-28 |
公开(公告)号: | CN107220111B | 公开(公告)日: | 2019-08-09 |
发明(设计)人: | 金海;李陈希;廖小飞;石翔 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智;曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 任务 窃取 调度 方法 系统 | ||
本发明公开了一种基于任务窃取的任务调度方法及系统,该方法的实现包括:构造任务依赖图,将依赖节点作为回调函数注册至被依赖节点的回调容器中;为线程池中各线程分配一个无锁双端队列并置空,将根节点按照轮询方式放入各线程的无锁双端队列底部;若线程的无锁双端队列不为空,则从无锁双端队列底部取出节点并执行;若线程的无锁双端队列为空,则从其他线程的无锁双端队列顶部窃取节点,并将窃取的节点压入该线程的无锁双端队列底部,取出窃取的节点进行执行;在所有节点任务执行完成后,将任务依赖图中各节点的入度恢复到原始值,并结束对主线程的阻塞。本发明针对大型任务级并行应用程序,可以有效提高传统任务级并行应用程序的性能。
技术领域
本发明属于计算机并行程序设计技术领域,更具体地,涉及一种基于任务窃取的任务调度方法及系统。
背景技术
不断逼近物理极限的晶体管尺寸以及功耗严重限制了计算机中单核处理器的发展,再也无法像以前一样只用等待芯片制造商推出新的处理器就能获得程序性能的提升。为进一步提升应用程序性能,只有依赖将多个核心集成到单个CPU中并将应用程序并行化的方法。单核串行时代已经结束,程序员开始迈向多核并行时代。
传统的并行编程模型(包括MPI和较早版本的OpenMP)只面向专家级、资深程序员或者只能适应规则的应用。多核时代需要的是面向更广阔应用领域的、易编程、高产能的并行编程工具。近几年涌现出许多新型并行编程模型,其中,任务级并行编程模型因为具有适用面广、编程方便、计算资源使用率高的优点而成为多核平台上首选的并行编程模型。任务级并行编程模型把任务作为并行的基本单位,提供任务划分和同步的编程接口,把任务划分和同步工作交给程序员完成,用户可以把应用程序划分出大量细粒度任务。然而,具体到每个任务到底是并行执行还是串行执行、在哪个物理核上执行以及如何实现任务之间的同步则由运行时系统完成。任务级并行编程模型提倡嵌套的递归任务,并引入以任务窃取算法为核心的用户级线程调度,实现程序的高性能和动态的负载平衡。
与一般程序类似,任务级并行编程模型中允许程序员使用控制流以实现程序逻辑。在控制流中的基本块末尾,程序员可自行添加或由运行时隐式添加同步操作以在基本块末尾处等待基本块中所有任务执行完毕以防止基本块之间在执行时出现数据竞争。然而对于大型并行应用程序,若程序的控制流较为复杂,这些同步操作会导致出现以下问题:
(1)若分布在同一控制流中的不同基本块中的任务不存在依赖关系或仅存在部分依赖关系,由于基本块末尾存在同步操作,时间序列上靠后的基本块中的所有任务必须等待靠前的基本块中的所有任务执行完毕后方可参与调度。时间序列上靠后的基本块中的所有任务从进入就绪状态到实际被运行时调度之间存在一个由块间同步操作引入的人为延迟。
(2)现代计算机采用层次缓存结构,重复使用的数据会暂存在CPU缓存中。当任务间通讯是基于共享内存模型时,存在依赖关系的任务往往会共用同一片内存区域。若存在依赖关系的任务被分布到控制流中的不同基本块中。当依赖任务所在的基本块开始执行时,被依赖任务所在基本块中的大量无关任务的执行导致缓存中的所需数据较大可能被换出,从而导致程序局部性较差。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于任务窃取的任务调度方法及系统,针对大型任务级并行应用程序,提出了基于任务依赖图驱动的任务调度思想,能够有效提高传统任务级并行应用程序的性能。
为实现上述目的,按照本发明的一个方面,提供了一种基于任务窃取的任务调度方法,包括:
将整体计算任务描述为由子任务节点与子任务节点间依赖边组成的任务依赖图,将依赖节点作为回调函数注册至被依赖节点的回调容器中;
获取所述任务依赖图中的根节点与叶子节点,为所有叶子节点添加一个虚拟依赖汇节点,所述虚拟依赖汇节点用于阻塞主线程;
为线程池中各线程分配一个无锁双端队列并置空,将所有根节点按照轮询方式放入各线程的无锁双端队列底部;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710290460.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:塔式炉后煤仓布置结构
- 下一篇:临河可折叠停车场