[发明专利]基于任务窃取算法的任务窃取方法及系统有效
申请号: | 201910954294.4 | 申请日: | 2019-10-09 |
公开(公告)号: | CN110908794B | 公开(公告)日: | 2023-04-28 |
发明(设计)人: | 陈榕;龚振晗;陈海波;臧斌宇 | 申请(专利权)人: | 上海交通大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 上海汉声知识产权代理有限公司 31236 | 代理人: | 胡晶 |
地址: | 200240 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 任务 窃取 算法 方法 系统 | ||
本发明提供了一种基于任务窃取算法的任务窃取方法及系统,包括:步骤1:将系统中的各个线程按编号从小到大排列形成队列,并且队列首尾相连形成一个环;步骤2:针对当前线程,判断下一个线程的状态;若处于过载状态,则从过载线程的任务列队中窃取计算任务,若处于正常状态,则执行步骤A;步骤3:在本地执行步骤2窃取的计算任务,然后执行步骤2,继续查看过载线程的下一个线程的状态;步骤A:判断本地队列是否存在排队等待的计算任务,若列队非空,则执行当前线程列队中的计算任务;若列队为空,则完成了一次Ring Stealing过程。本发明可以让一个正常状态的线程分担多个过载线程的负载压力,减小请求的延时。
技术领域
本发明涉及多线程负载均衡领域,具体地,涉及一种基于任务窃取算法的任务窃取方法及系统,尤其涉及一种面向低时延高并发多线程系统的基于Work Stealing的任务窃取算法。
背景技术
由于单个CPU核心性能提升有着严重的瓶颈问题,所以越来越多的系统开始使用多个线程并行计算的方式来提高系统的并发处理能力。这一类高并发的请求处理系统通常会不断地接收到新的请求,请求会存储在任务队列中。每个请求其实就是一个计算任务,计算任务之间相互独立。系统一般由多个线程组成,每个线程都配有一个任务队列,各个线程从自己的任务队列中拿取请求,线程之间并行执行计算任务,从而提高系统的吞吐量。
在这种高并发的请求处理系统中,一开始各个队列中的计算任务数量接近,各个队列的长度比较均衡。但当某个线程开始处理一个复杂计算任务之后,由于一个复杂计算任务的处理时间可以达到普通计算任务的几百倍甚至上千倍,导致该线程队列里的计算任务迅速堆积,该线程的负载严重过载,其队列中还在排队等待的计算任务的延时被放大了几十倍甚至上百倍。
这种高并发的处理系统一般都是实时面向用户的,因此通常这类系统需要在高并发地执行计算任务的同时保证系统可以低时延地响应客户端的请求,因此需要一种负载均衡机制来解决由于复杂计算任务堵塞线程导致的队列中的普通任务延时过高的问题。
Work stealing技术是一种广为应用的均衡各个线程负载的调度策略。传统的Work stealing策略下,当某个线程执行完自己任务队列中所有的计算任务之后,会去查看其它线程的任务队列,并从其他线程的任务队列中窃取计算任务,拿到本地代为执行,从而均衡各个线程之间的负载压力。
例如线程A的任务队列有100个计算任务在等待执行,而线程B的任务队列中堆积了2000个计算任务,此时线程之间的负载严重不均衡。倘若采用了Work Stealing技术,那么当线程A处理完自己队列中所有的计算任务后,会去窃取线程B任务队列里的计算任务,从而达到分担线程B负载压力的效果。
但是在传统的Work Stealing技术下,线程只有在处理完自己任务队列中所有的计算任务之后才会触发Stealing行为,去窃取别的线程任务队列里的计算任务。而高并发的请求处理系统通常需要24小时不间断接收客户端的请求,各个线程的任务队列在绝大部分情况下不会为空,线程A处理完10个计算任务之后,又会接收到新的8个请求,则任务队列中又增加了8个计算任务。因此,在高并发的场景下,线程A的任务队列几乎不会出现为空的情况,甚至在客户端高并发地发送请求的情况下可能会堆积到150个计算任务。因此,传统的Work Stealing机制几乎不会触发,无法解决高并发的请求处理系统中某些请求由于被复杂计算任务堵塞导致的高延时问题。
传统Work Stealing技术只有在任务队列为空时才会窃取计算任务,而在高并发的请求处理系统中很少出现某个线程任务队列为空的情况,因此传统的Work Stealing算法(任务窃取算法)在高并发的系统中负载均衡效果很差。在并行计算领域,Work Stealing算法是一种针对多线程程序的任务调度策略。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学,未经上海交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910954294.4/2.html,转载请声明来源钻瓜专利网。