【技术实现步骤摘要】
本专利技术涉及计算机
,尤其涉及一种任务调度方法及装置。
技术介绍
随着处理器技术的发展,多核处理器的使用越来越广泛,市场上大多数处理器采用多核多线程的体系结构,甚至很多终端配置的处理器已经可以达到4核乃至8核。流式应用是一种常见的应用类型,在采用上述多核处理器处理流式应用的应用数据时,为了充分利用该多核处理器的并行处理能力,可以将流式应用的应用数据划分为多个数据块,由多核处理器并行处理上述多个数据块。其中,多核处理器的并行处理过程中,可能会存在由于采用至少两个线程并行执行任务时,该至少两个线程同时访问一个数据块,而引发数据竞争。现有技术中,为了避免上述数据竞争,在多核处理器的并行处理过程引入了“锁”。其中,线程在访问一个数据块之前,需要先获得该数据块的锁,并在访问完成后,需要释放该数据块的锁。如此在一个线程访问该数据块的过程中,其他线程则不能同时访问该数据块,则可以避免采用多个线程并行执行任务时,多个线程同时访问一个数据块而引发的数据竞争。但是,存在的问题是:在多核处理器的并行处理过程引入了“锁”后,虽然可以避免多个线程并行执行任务时,同时访问一个数据块,但是在多线程并行执行任务的过程中,仍旧存在多个线程同时竞争一个数据块的锁的问题,锁的竞争会带来额外的性能开销。
技术实现思路
本专利技术的实施例提供一种任务调度方法及装置,不仅可以减少多个线程并行执行任务时,同时访问一个数据块而引发的数据竞争,从而可以提高任务调度的效率。为达到上述目的,本专利技术的实施例采用如下技术方案:本专利技术实施例的第一方面,提供一种任务调度方法,该任务调度方法包括:根据待执 ...
【技术保护点】
一种任务调度方法,其特征在于,所述方法包括:根据待执行的多个任务与所述多个任务待访问的M个数据块的对应关系,将所述多个任务中的每个任务添加到与该任务对应的数据块的任务队列,其中,所述M个数据块与M个任务队列一一对应;采用N个线程并行执行所述M个任务队列中N个任务队列中的任务,其中,所述N个线程中的每个线程执行所述N个任务队列中一个任务队列中的任务,所述N个线程中不同的线程执行不同任务队列中的任务,2≤N≤M。
【技术特征摘要】
1.一种任务调度方法,其特征在于,所述方法包括:根据待执行的多个任务与所述多个任务待访问的M个数据块的对应关系,将所述多个任务中的每个任务添加到与该任务对应的数据块的任务队列,其中,所述M个数据块与M个任务队列一一对应;采用N个线程并行执行所述M个任务队列中N个任务队列中的任务,其中,所述N个线程中的每个线程执行所述N个任务队列中一个任务队列中的任务,所述N个线程中不同的线程执行不同任务队列中的任务,2≤N≤M。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述M个任务队列中的至少一个任务队列添加至等待队列组,所述至少一个任务队列中的每个任务队列中包含至少一个任务,且所述至少一个任务未被所述N个线程中的线程执行;其中,所述等待队列组用于按照先进先出的原则存放所述M个任务队列中的任务队列。3.根据权利要求2所述的方法,其特征在于,所述采用N个线程并行执行所述M个任务队列中N个任务队列中的任务,包括:采用所述N个线程,并行执行所述等待队列组中的前N个任务队列中的任务;其中,所述前N个任务队列为所述等待队列组中最先添加的N个任务队列,所述N个线程中的每个线程按照所述先进先出原则执行所述前N个任务队列中一相应的任务队列中的任务。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:采用一空闲线程执行所述等待队列组中第一队列中的任务,所述第一队列为在所述前N个任务队列后被添加到所述等待队列组的首个任务队列;将被执行的所述第一队列从所述等待队列组中删除;其中,所述空闲线程为所述N个线程中执行完相应的任务队列中的任务的线程;或者,所述空闲线程为所述N个线程中退出执行相应的任务队列中的任务的线程。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述多个任务包括属于第二队列的第一任务,所述第一任务在被第一线程执行的过程中
\t等待来自第三队列的任务执行结果,所述第一线程为所述N个线程中用于执行所述第二队列中的任务的线程,所述第二队列为所述等待队列组中的任一任务队列,所述第三队列为所述等待队列组中不同于所述第二队列的任务队列;所述方法还包括:将所述第一线程退出执行正在等待所述任务执行结果的所述第一任务;将退出执行的所述第一任务添加至所述第三队列;待所述第一任务获得所述任务执行结果后,采用第二线程执行所述第二队列中的所述第一任务;其中,所述第二线程为所述N个线程中执行完相应的任务队列中的任务的线程;或者,所述第二线程为所述N个线程中退出执行相应的任务队列中的任务的线程。6.根据权利要求2-4中任一项所述的方法,其特征在于,所述方法还包括:将所述等待队列组中被所述N个线程中的线程执行的任务所在的任务队列删除。7.一种任务调度装置,其特征在于,所述装置包括:任务添加模块,用于根据待执行的多个任务与所述多个任务待访问的M个数据块的对应关系,将所述多个任务中的每个任务添加到与该任务对应的数据块的任务队列,其中,所述M个数据块与M个任务队列一一对应;任...
【专利技术属性】
技术研发人员:赵鹏,刘雷,曹玮,
申请(专利权)人:华为技术有限公司,中国科学院计算技术研究所,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。