[发明专利]一种面向分布式流计算系统的动态任务调度优化方法有效
申请号: | 201710997546.2 | 申请日: | 2017-10-24 |
公开(公告)号: | CN107832129B | 公开(公告)日: | 2020-05-19 |
发明(设计)人: | 吴松;金海;柳密 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智;曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 分布式 计算 系统 动态 任务 调度 优化 方法 | ||
1.一种面向分布式流计算环境下的任务调度优化方法,其特征在于,包括如下步骤:
步骤1、依据当前周期内任务间的通信量预测下一周期内任务间的通信量;具体实现过程为:在采样周期T内统计任务i发送给任务j的消息总数量记为任务i到j的通信量TrafficT(i,j),结合前一周期内任务i到j的通信量Trafficlast(i,j)预测下一个周期内任务i到j的通信量Trafficnext(i,j):
Trafficnext(i,j)=Trafficlast(i,j)×β+TrafficT(i,j)×(1-β)
式中,β是比例伸缩常量;
步骤2、将下一周期内预测通信量最大的两个任务组合为一个任务组;具体实现过程为:
从任务i的所有邻居未访问任务中,选取一个任务i与它之间的预测通信量最大的任务,将其与任务i组合为任务组parentTask,如果任务i的所有邻居任务均已被访问,仅将任务i独立组合为任务组parentTask,完成第一层组合;
遍历每一条数据流,如果数据流的源任务和目标任务属于同一个parentTask,那么这条数据流在下一层组合时忽略;如果数据流的源任务和目标任务不属于同一个parentTask,那么这条数据流将跨越两个不同的parentTask,将这两个paremTask之间的所有数据流的通信量之和作为这两个parentTask在下一层组合时的预测通信量;从parentTask的所有邻居未访问parentTask中,选取一个与它之间的预测通信量最大的parentTask,将其与parentTask组合为下一层次的任务组parentTask,完成第二层组合;重复第二层组合方式,直到最终的任务组数低于阈值taskNumThreshold;
步骤3、启动进程并以任务组为单位进行调度;具体实现方式为:选取当前负载小于进程平均预测负载的进程作为候选进程,从候选进程中选取当前负载最低的调度任务组;
所述进程平均预测负载的计算方式为:获取当前启动的进程总数W,将当前调度的k个任务组在下一周内的预测负载W_loadnexti求和得到预测总负载,依据进程总数和预测总负载计算每个进程worker的平均预测负载:
2.根据权利要求1所述的面向分布式流计算环境下的任务调度优化方法,其特征在于,所述在采样周期T内统计任务i发送给任务j的消息总数量的具体实现方式:检测系统中的任务发送队列,记录任务i发送的消息中携带的目标任务j的ID,通过ID更新对应的消息数量。
3.根据权利要求1或2所述面向分布式流计算环境下的任务调度优化方法,其特征在于,使用双层哈希表保存任务i到任务j的通信量,映射关系为任务i的ID、任务j的ID、任务i发送给任务j的消息数量。
4.根据权利要求1所述的面向分布式流计算环境下的任务调度优化方法,其特征在于,所述任务在下一周内的预测负载W_loadnexti的获取方式为:
在采样周期T内统计任务i接收和发送的消息总数量W_loadT记为任务i的负载W_loadTi,结合前一周期内任务i的负载W_loadLasti预测下一周内任务i的负载W_loadnexti:
W_loadnexti=W_loadlasti×α+W_loadTi×(1-α)
式中,α是比例伸缩常量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710997546.2/1.html,转载请声明来源钻瓜专利网。