[发明专利]一种基于任务窃取的任务调度方法及系统有效

专利信息
申请号: 201710290460.6 申请日: 2017-04-28
公开(公告)号: CN107220111B 公开(公告)日: 2019-08-09
发明(设计)人: 金海;李陈希;廖小飞;石翔 申请(专利权)人: 华中科技大学
主分类号: G06F9/48 分类号: G06F9/48;G06F9/50
代理公司: 华中科技大学专利中心 42201 代理人: 李智;曹葆青
地址: 430074 湖北*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于任务窃取的任务调度方法及系统,该方法的实现包括:构造任务依赖图,将依赖节点作为回调函数注册至被依赖节点的回调容器中;为线程池中各线程分配一个无锁双端队列并置空,将根节点按照轮询方式放入各线程的无锁双端队列底部;若线程的无锁双端队列不为空,则从无锁双端队列底部取出节点并执行;若线程的无锁双端队列为空,则从其他线程的无锁双端队列顶部窃取节点,并将窃取的节点压入该线程的无锁双端队列底部,取出窃取的节点进行执行;在所有节点任务执行完成后,将任务依赖图中各节点的入度恢复到原始值,并结束对主线程的阻塞。本发明针对大型任务级并行应用程序,可以有效提高传统任务级并行应用程序的性能。
搜索关键词: 一种 基于 任务 窃取 调度 方法 系统
【主权项】:
1.一种基于任务窃取的任务调度方法,其特征在于,包括:(1)将整体计算任务描述为由子任务节点与子任务节点间依赖边组成的任务依赖图,将依赖节点作为回调函数注册至被依赖节点的回调容器中;(2)获取所述任务依赖图中的根节点与叶子节点,为所有叶子节点添加一个虚拟依赖汇节点,所述虚拟依赖汇节点用于阻塞主线程;(3)为线程池中各线程分配一个无锁双端队列并置空,将所有根节点按照轮询方式放入各线程的无锁双端队列底部;(4)对于每个线程,若线程的无锁双端队列不为空,则从线程的无锁双端队列底部取出节点并执行节点中包含的任务,在任务执行结束后,执行节点中回调容器中的所有回调;若线程的无锁双端队列为空,则该线程尝试从其他线程的无锁双端队列顶部窃取节点,若窃取成功则将窃取的节点压入该线程的无锁双端队列底部,执行窃取节点中的任务以及窃取节点中回调容器中的所有回调;(5)在任务依赖图中所有节点中的任务均执行完成后,将任务依赖图中的各节点的入度恢复到原始值,并结束对主线程的阻塞。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201710290460.6/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top