CN102831011B - 一种基于众核系统的任务调度方法及装置 - Google Patents
一种基于众核系统的任务调度方法及装置 Download PDFInfo
- Publication number
- CN102831011B CN102831011B CN201210285499.6A CN201210285499A CN102831011B CN 102831011 B CN102831011 B CN 102831011B CN 201210285499 A CN201210285499 A CN 201210285499A CN 102831011 B CN102831011 B CN 102831011B
- Authority
- CN
- China
- Prior art keywords
- task
- resource
- scheduling
- execution area
- dispatching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了一种基于众核系统的任务调度方法及装置,通过将微处理器众核系统划分成管理调度区和任务执行区,针对不同应用和当前系统资源情况由调度算法以及编译指导命令生成编译信息,调度单元接收编译信息将需要调度的线程调度到合适的PE(Processor?Element),构建满足要求的计算模式,通过配置子网形成合适的虚拟计算群VCG(Virtual?Computing?Group);任务执行区在调度单元的调度下做出应对策略,进而实现动态、在线重构,本方案可提高众核平台的微处理器资源利用率,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率。
Description
技术领域
本发明涉及计算机任务调度和资源映射技术领域,特别涉及一种基于众核系统的任务调度方法及装置。
背景技术
目前,微处理器微体系结构的发展有以下四个重要趋势:第一、单芯片集成的系统结构。采用SoC(SystemOnChip)技术实现传统计算机系统在单个芯片内的微型化和集成化是微处理器研究与设计的一个重要趋势。在单个芯片内集成多个处理器核、核间互连网络以及片内多级存储层次,构成的单芯片多处理器CMP(ChipMultiprocessor)。随着芯片规模的不断扩大,未来的趋势是将更大规模的MPP系统(结点数目几十到上百数量级,甚至更多)集成到单个芯片上,形成众核(many-core)微处理器。第二、精简的处理器核心。在单片高集成度的前提下,处理器核功能的精简化(Reducing)是微处理器研究与设计的另一个重要趋势,如:IBM的Cyclops64、Cell以及OCPUnSPARCT1等微处理器都采用了相对简单的处理器核。采用RISC(ReducedInstructionSetComputing)思想,精简化是将处理器核的逻辑根据目标应用的特性进行简化,保留用途最大(使用最频繁)的必要计算资源,形成精简处理器核。第三、应用为导向的可重构设计。分析目标应用的特性,面向目标应用的特性进行微体系结构设计是微处理器研究的另一个重要趋势。随着社会的发展,不断出现的新应用对微处理器微体系结构提出了新的要求。第四、性能和功耗的权衡管理。随着集成度的提高,以及工艺尺寸进步带来的漏电流增大,使功耗成为单芯片众核发展的障碍。因此,对处理器的要求从单一的追求功耗,转移到了对能耗比的追求,以最低的功耗取得最高的性能。
随着计算机微处理器发展的趋势与特点越来越明显,在保证性能要求和安全的前提下,众核的任务调度和资源映射等技术应运而生。其基本思想如下:在尽可能少地损失性能的前提下,在底层硬件和上层应用之间加上虚拟层,它可以合理地进行硬件资源管理、任务调度、隔离不同应用等。但是随着众核系统中PE(ProcessorElement)的不断增加,高度增加的任务数目和计算量使现有技术无法满足调度和管理的需求。
同时,现有的任务调度技术,没有体现出高度灵活性。一方面,针对动态性而言,现有技术制约了动态可重构。单个PE可能无法快速完成任务,需要一些PE组成虚拟计算群VCG(VirtualComputingGroup),构成功能更加强大的计算单元,才能根据实时资源需求和可靠性需求,支持单线程、多线程、SIMD、宏流水和冗余计算等基本计算模式,从而满足系统要求。另一方面,针对在线重构性,对单个任务而言,现有的任务调度技术无法实现在任务执行期间,为其在线添加或释放资源,同时保证其他任务的正常运行。
因此,如何最大限度的使用众核平台的微处理器资源,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率,使系统满足不同应用的需求,成为未来众核发展的关键技术。针对现有技术中存在的问题,本方案提出一种基于众核系统的任务调度方法及装置是计算机任务调度和资源映射技术领域目前急待解决的问题之一。
发明内容
有鉴于此,本发明实施例提出了一种基于众核系统的任务调度方法及装置,通过将微处理器众核系统划分成管理调度区和任务执行区,针对不同应用和当前系统资源情况由调度算法以及编译指导命令生成编译信息,调度单元接收编译信息将需要调度的线程调度到合适的PE,构建满足要求的计算模式,通过配置子网形成合适的虚拟计算群VCG;任务执行区在调度单元的调度下做出应对策略,进而实现动态、在线重构,本方案可提升使用众核平台的微处理器资源,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率。
为解决上述技术问题,本发明实施例的目的是通过以下技术方案实现的:
一种基于众核系统的任务调度方法,包括:
步骤一、微处理器众核系统划分成管理调度区和任务执行区;
步骤二、依据编译指导信息,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式;
步骤三、任务执行区根据调度程序给出的指导信息做出应对策略,进而实现动态、在线重构。
优选的,上述步骤一中,进一步包括调度算法、资源管理算法、编译指导命令在操作系统用户态,调度单元工作在操作系统内核态,映射到有操作系统的管理调度区。
优选的,上述调度算法负责多个应用到任务执行区PE的映射。
优选的,上述资源管理算法基于树的数据结构,根据当前调度单元反映的资源使用情况为应用分配任务区空闲的PE,负责任务执行区空闲PE的管理。
优选的,进一步包括根据不同应用特性由用户插入编译指导命令告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式等细节情况,和调度算法配合指导下层调度单元做出相应策略。
优选的,上述编译指导命令根据任务优先级、计算模式、线程阶段性等告知编译器相应细节,使编译器认知任务的特性,同时配合调度算法,合理分析当前任务进程的实时资源需求情况,根据现有资源对PE进行合理划分,并给出编译信息。
优选的,上述调度单元不仅检测任务执行区的PE工作状态信息,而且根据编译信息把应用的线程与PE绑定,同时配置子网,形成单个任务独占的VCG,最后把线程交给任务执行区。
优选的,上述步骤一中,管理调度区由1个核组成,根据形成的进程/线程数,一个核运行专门用作调度单元。
优选的,上述步骤二中,进一步包括,调度算法根据函数(线程)之间的数据传递、通信等关系,调度能够即时运行的线程,同时根据程序的通信关系,安排线程所在PE的相对位置。
优选的,上述根据程序的通信关系,安排线程所在PE的相对位置为通信量越大的线程应该安排在相对近PE上,反之亦然。
优选的,上述调度算法在程序的每个阶段的线程全部完成时,进行一次阶段性重构,在线增加或释放PE,调整VCG和子网的形状与大小。
优选的,上述调度算法指导相应的VCG进行计算模式的重构或阶段性资源增减,同时调度单元发送给路由器相应的路由算法,最后形成含有不同数量PE、不同拓扑的VCG。
优选的,上述步骤二中,进一步包括,编译指导命令运行在操作系统用户态,告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式等细节情况,和调度算法配合指导下层调度单元做出相应策略,进行初始调度。
优选的,上述步骤三中,将所有精简的微处理器(PE)划为任务执行区,管理调度核运行操作系统和调度算法、编译指导命令;任务执行区根据调度程序给出的指导信息做出不同应对策略,该区可以实现动态、在线重构,每一个VCG的规模和计算模式根据不同的应用和系统资源需求情况进行重构。
优选的,上述步骤三中,任务执行区分为多个虚拟计算群VCG,每个虚拟计算群相互独立,根据应用的自身特性占用不同数目的PE。
优选的,上述步骤一中,进一步包括资源管理算法,任务初始映射根据PE的数量以及这些PE形成的VCG拓扑形状和位置,在矩形资源上挖去所需的资源,并把其他空闲资源划按照一定规则分为几个小矩形,成为树的叶节点;在任务执行过程中,根据任务的在线运行需求,为其分配或释放PE资源;在任务完成后,释放所有被使用的资源,小矩形重新合并成空闲的大矩形。
优选的,上述资源管理算法在任务执行过程中,若需在线添加PE,可在树的拥有该任务编号的最深的子节点下查找空闲的叶节点,判断该叶节点和原有任务相邻后,在叶节点中挖去与该任务相邻的资源,形成邻近分配。
优选的,上述资源管理算法在任务执行过程中,若需在线释放PE,可在树的拥有该任务编号的最深的子节点下查找叶节点,释放的PE与相邻叶节点可以实现矩形合并。
优选的,上述资源管理算法在任务完成后,由根节点到所有叶节点依次除去任务编号,同时完成矩形资源的合并。
一种基于众核系统的任务调度装置,包括管理调度单元及任务执行单元,通过根据操作系统和实际应用需要将微处理器众核系统划分成管理调度区和任务执行区,接着依据编译器的指导信息,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式,然后任务执行区根据调度程序给出的指导信息做出应对策略,进而实现动态、在线重构。
优选的,上述管理调度单元用于依据编译器的指导信息,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式。
优选的,上述任务执行单元用于任务执行区根据调度程序给出的指导信息做出应对策略,进而实现动态、在线重构。
优选的,上述管理调度单元针对不同应用和当前系统资源情况由调度算法以及编译指导命令生成编译信息,调度单元接收编译信息将需要调度的线程调度到合适的PE,构建满足要求的计算模式,通过配置子网形成合适的虚拟计算群VCG。
综上所述,一种基于众核系统的任务调度方法及装置,通过将微处理器众核系统划分成管理调度区和任务执行区,针对不同应用和当前系统资源情况由调度算法以及编译指导命令生成编译信息,调度单元接收编译信息将需要调度的线程调度到合适的PE,构建满足要求的计算模式,通过配置子网形成合适的虚拟计算群VCG;任务执行区在调度单元的调度下做出应对策略,进而实现动态、在线重构,本方案可提升使用众核平台的微处理器资源,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率。
附图说明
图1为本发明一种基于众核系统的任务调度方法示意图;
图2为本方案众核系统模型示意图;
图3为本方案任务动态重构示意图;
图4为本方案基于矩形的众核资源管理示意图;
图5为本方案任务执行阶段性模型示意示意图;
图6为本发明一种基于众核系统的任务调度示意图。
具体实施方式
本发明实施例提供的一种基于众核系统的任务调度方法及装置,通过将微处理器众核系统划分成管理调度区和任务执行区,针对不同应用和当前系统资源情况由调度算法以及编译指导命令生成编译信息,调度单元接收编译信息将需要调度的线程调度到合适的PE,构建满足要求的计算模式,通过配置子网形成合适的虚拟计算群VCG;任务执行区在调度单元的调度下做出应对策略,进而实现动态、在线重构,本方案可提升使用众核平台的微处理器资源,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率。
为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明进一步详细说明。
本发明的主要思路为:提出了一种基于众核系统的任务调度方法及装置。针对众核系统,本方案采用软、硬件协同的方式实现众核系统资源的动态、在线映射。根据操作系统和实际应用需要把所有PE划分成管理调度区和任务执行区,调度程序在操作系统之上,映射到有操作系统的管理区,实现资源的动态在线管理;多种应用映射到任务执行区。管理调度区根据自身操作系统的复杂性动态占用一个或多个PE;任务执行区分为多个VCG,每个虚拟计算群相互独立,根据应用的自身特性占用不同数目的PE。
本发明实施例提供一种基于众核系统的任务调度方法,如图1所示,具体步骤包括:
步骤一、根据操作系统和实际应用需要将微处理器众核系统划分成管理调度区和任务执行区;
具体而言,在本发明实施例中,将根据操作系统和实际应用需要把所有PE划分成管理调度区和任务执行区,管理调度程序在操作系统之上,映射到有操作系统的管理调度区,实现资源的动态在线管理;多种应用映射到任务执行区。
进一步的,在本方案中,针对众核平台的特点,将系统中主核放在拓扑的中央,将众多精简PE按照功能任务执行区(如图2所示)。本发明的实施例中,提出了一种基于100个微处理器众核系统的动态重构方法。管理调度区由1个核组成,根据形成的进程/线程数,一个核运行专门用作调度单元。任务执行区由99个核组成。
在用户态的程序中插入编译指导命令,单个程序由于函数数据传递以及函数间通信,在用户的编译指导命令下形成3个执行阶段A、B、C,A(a1、a2、a3、a4),B(b1、b2),C(c1,c2),括号内代表阶段内需要执行的子任务。编译指导命令要求阶段A使用多线程并行计算模式,阶段B使用宏流水计算模式,阶段C使用冗余计算模式。
在本方案中,管理调度区进一步包括调度算法、资源管理算法、编译指导命令在操作系统用户态,调度单元工作在操作系统内核态,映射到有操作系统的管理调度区。调度算法负责多个应用到任务执行区PE的映射。
资源管理算法基于树的数据结构,根据当前调度单元反映的资源使用情况为应用分配任务区空闲的PE,负责任务执行区空闲PE的管理。资源管理算法根据不同应用特性由用户插入编译指导命令告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式等细节情况,和调度算法配合指导下层调度单元做出相应策略。
在本方案中,资源管理算法,任务初始映射根据PE的数量以及这些PE形成的VCG拓扑形状和位置,在矩形资源上挖去所需的资源,并把其他空闲资源划按照一定规则分为几个小矩形,成为树的叶节点;在任务执行过程中,根据任务的在线运行需求,为其分配或释放PE资源;在任务完成后,释放所有被使用的资源,小矩形重新合并成空闲的大矩形。在
任务执行过程中,若需在线添加PE,可在树的拥有该任务编号的最深的子节点下查找空闲的叶节点,判断该叶节点和原有任务相邻后,在叶节点中挖去与该任务相邻的资源,形成邻近分配。在任务执行过程中,若需在线释放PE,可在树的拥有该任务编号的最深的子节点下查找叶节点,释放的PE与相邻叶节点可以实现矩形合并。在任务完成后,由根节点到所有叶节点依次除去任务编号,同时完成矩形资源的合并。
其中,编译指导命令根据任务优先级、计算模式、线程阶段性等告知编译器相应细节,使编译器认知任务的特性,同时配合调度算法,合理分析当前任务进程的实时资源需求情况,根据现有资源对PE进行合理划分,并给出编译信息。
调度单元不仅检测任务执行区的PE工作状态信息,而且根据编译信息把应用的线程与PE绑定,同时配置子网,形成单个任务独占的VCG,最后把线程交给任务执行区。
在本方案中,管理调度区由1个核组成,根据形成的进程/线程数,一个核运行专门用作调度单元。
管理调度区包括:
(1)任务调度算法、资源管理算法、编译指导命令,它们工作在操作系统之上,属于用户态的程序:任务调度算法负责多个应用到任务执行区PE的映射;资源管理算法负责任务执行区空闲PE的管理,使用基于树的数据结构;而根据不同应用特性由用户插入编译指导命令告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式等细节情况,和调度算法配合指导下层调度单元做出相应策。由于有编译指导命令,所以需要根据编译指导命令优化的编译器。
(2)调度单元工作在操作系统之上,属于内核态的程序(即生产厂家根据本专利的思想把所需的功能固定,以后不能改变其功能,属于操作系统内部基本功能)。调度单元负责:a告诉操作系统资源的使用情况,b接收编译信息:根据编译信息告知的当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式,通过配置子网实现动态构建新的合适规模的VCG群,实现资源管理的虚拟化。
步骤二、依据编译器的指导信息,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式;
具体而言,在本发明实施例中,调度程序在操作系统之上,映射到有操作系统的管理区,实现资源的动态在线管理;多种应用映射到任务执行区。管理调度区根据自身操作系统的复杂性动态占用一个或多个PE。本发明的实施例中,提出了一种基于100个微处理器众核系统的动态重构方法。管理调度区由1个核组成,根据形成的进程/线程数,一个核运行专门用作调度单元。即,主核(ManageProcessor)用于管理调度,划分为管理调度区。
进一步的,在本方案中,调度算法根据函数(线程)之间的数据传递、通信等关系,调度能够即时运行的线程,同时根据程序的通信关系,安排线程所在PE的相对位置:通信量越大的线程应该安排在相对近PE上,反之亦然。程序的每个阶段的线程全部完成时,进行一次阶段性重构,在线增加或释放PE,调整VCG和子网的形状与大小。程序计算模式一定程度上反映了线程之间的通信关系和数据传递。根据以上关系指导相应的VCG进行计算模式的重构或阶段性资源增减,同时调度单元发送给路由器相应的路由算法,最后形成含有不同数量PE、不同拓扑的VCG。
其中,编译指导命令运行在操作系统用户态,告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式等细节情况,和调度算法配合指导下层调度单元做出相应策略,进行初始调度。对该方面的具体策略如下:
编译指导命令能够根据任务优先级、计算模式、线程阶段性等告知编译器相应细节,使编译器认知任务的特性,同时配合调度算法,合理分析当前任务进程的实时资源需求情况,根据现有资源对PE进行合理划分,并给出编译指导信息。指导调度单元进行任务的初始调度。基于以上特点,编译器必须做出相应修改,插入资源管理调度的提示信息,包括计算模式的规模和阶段性资源增减、优先级设定、安全级别、冗余需求和特权任务插入等指令。
调度单元运行在操作系统的内核态,由管理调度区的一个或多个核组成,接受编译器的指导信息,管理众核平台PE的资源。调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式,通过配置子网实现动态构建新的合适规模的VCG群,实现资源管理的虚拟化,对调度单元的具体策略如下:
a)每个PE向调度单元注册节点信息,建立健康机制,向调度单元定期报告工作是否正常(例如心跳机制)。
b)调度单元根据健康机制,当发现异常PE时,把该节点从VCG中删除,并把该节点任务分配给该VCG的其他预计执行时间少的PE。
c)向调度单元注册的节点信息可以为PE的ID号等唯一标识该PE的信息。调度单元可以用位图(bitmap)的方法对所有PE进行统一管理。
d)调度单元根据任务的优先级与计算密集程度对当前可用的资源进行合理调度,形成合适规模的VCG,并且根据任务的实时资源需求和可靠性需求,采用五种基本计算模式(1、单线程、单处理模式2、单线程、SIMD模式3、多线程模式4、宏流水模式5、冗余计算模式)或混合计算模式,充分开发多层次并行性,提高资源利用率,减少任务执行时间。
e)不同应用在不同时间内需要的PE资源以及计算模式可能发生改变,为了达到更好的性能,VCG中PE的组织形式以及排布的可能需要调整,个别PE需要临时加入或剔除,动态重构新的VCG群。
f)向调度单元发送的健康信息不仅包括该PE的连接状态与工作信息,在必要时还应该有关键任务执行的一些关键状态,例如定期向调度单元发送关键任务当前已完成的进程。若在一段时期的等待以后未收到健康信息,认为该PE处在不健康状态,在注册信息中除去该节点,并进行异常处理,例如重新启动等。
g)调度单元占用的核数根据单个VCG规模、任务数量、VCG数量、计算复杂性和实时性要求可适当改变。
即,调度单元工作在操作系统之上,属于内核态的程序(即生产厂家根据本专利的思想把所需的功能固定,以后不能改变其功能,属于操作系统内部基本功能)。调度单元负责:a告诉操作系统资源的使用情况,b接收编译信息:根据编译信息告知的当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式,通过配置子网实现动态构建新的合适规模的VCG群,实现资源管理的虚拟化。
其中,编译指导命令可以有:set_schedcore(intsub_tid,intPE_id)、set_priotity(intpriority)、set_compute_mode(intmode)、insert_task(intpriority)、set_safelvl(intsafe)、create_phase(vector<int>sub_task_list)等。并且存在优化好的编译器。
进一步的,在本方案中,对众核PE资源的管理采用基于树的数据结构的资源管理方法:树的根节点代表整个N*N个PE的正方形拓扑资源,任务初始映射根据PE的数量以及这些PE形成的VCG拓扑大小和位置,在矩形资源上挖去所需的资源,并把其他空闲资源划按照一定规则分为几个小矩形,成为树的叶节点。
在本方案中,进一步包括调度算法根据函数(线程)之间的数据传递、通信等关系,调度能够即时运行的线程,同时根据程序的通信关系,安排线程所在PE的相对位置。根据程序的通信关系,安排线程所在PE的相对位置为通信量越大的线程应该安排在相对近PE上,反之亦然。调度算法在程序的每个阶段的线程全部完成时,进行一次阶段性重构,在线增加或释放PE,调整VCG和子网的形状与大小。调度算法指导相应的VCG进行计算模式的重构或阶段性资源增减,同时调度单元发送给路由器相应的路由算法,最后形成含有不同数量PE、不同拓扑的VCG。
在本方案中,编译指导命令运行在操作系统用户态,告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式等细节情况,和调度算法配合指导下层调度单元做出相应策略,进行初始调度。
进一步的,在本方案中,树的根节点代表整个N*N个PE的正方形拓扑资源,任务初始映射根据PE的数量以及这些PE形成的VCG拓扑大小和位置,在矩形资源上挖去所需的资源,并把其他空闲资源划按照一定规则分为几个小矩形,成为树的叶节点;在任务执行过程中,根据任务的在线运行需求,为其分配或释放PE资源,实现PE资源的高效利用;(如图4所示)
此外,在任务执行过程中,根据任务的在线运行需求,为其分配或释放PE资源,实现PE资源的高效利用;在任务完成后,释放所有被使用的资源,小矩形重新合并成空闲的大矩形,为后续任务的映射留出足够空间。这种方法高效的实现了基于矩形拓扑结构的空闲资源管理,从而方便查找任务的邻近资源,用很小的时间复杂性实现了小矩形的合并。可以高效的进行任务的初始映射和在线调整。具体如下,如图4所示:
a)树的每个节点代表一个矩形块,每个矩形块由其中一个PE编号和它的长宽唯一确定,例如左上角节点和长宽,数据结构为分配在该矩形之上的各个任务编号、矩形的长宽信息、矩形左上节点等。
b)只有空闲的叶节点能够为任务提供资源,包括新任务的初始映射资源和原有任务的在线添加资源。
c)为方便新任务的映射,添加空闲矩形列表,每个列表节点代表树的空闲叶节点。任务初始映射可在空闲矩形列表中查找满足要求的空闲矩形资源,挖去需要的资源之后,再由此叶节点到根节点依次加上自己的任务编号,同时删除对应的列表节点。若该叶节点资源没用被完全占用,则把剩余的空闲资源划分为小矩形,添加到原来叶节点之下,成为新的叶节点,并把它们添加到空闲矩形列表中。
d)任务执行过程中,若需在线添加PE,可在树的拥有该任务编号的最深的子节点下查找空闲的叶节点,判断该叶节点和原有任务相邻后,在叶节点中挖去与该任务相邻的资源,形成邻近分配。
e)任务执行过程中,若需在线释放PE,可在树的拥有该任务编号的最深的子节点下查找叶节点,释放的PE与相邻叶节点可以实现矩形合并。
f)任务完成后,由根节点到所有叶节点依次除去任务编号,同时完成矩形资源的合并。
步骤三、任务执行区根据调度程序给出的指导信息做出应对策略,进而实现动态、在线重构。
具体而言,在本发明实施例中,将所有精简的微处理器(PE)划为任务执行区,管理调度核运行操作系统和调度程序;任务执行区根据调度程序给出的指导信息做出不同应对策略,该区可以实现动态、在线重构,每一个VCG的规模和计算模式根据不同的应用和系统资源需求情况进行重构。任务执行区分为多个VCG,每个虚拟计算群相互独立,根据应用的自身特性占用不同数目的PE。进一步的,在本发明的实施例中,提出了一种基于100个微处理器众核系统的动态重构方法。管理调度区由1个核组成,根据形成的进程/线程数,一个核运行专门用作调度单元。任务执行区由99个核组成。
在本方案中,系统整个任务分配一个VCG,首先在第一阶段为A分配四个PE。线程a1-a4分别分配(0,0)、(0,1)、(1,0)、(1,1)号PE,在形成左下角的规则矩形拓扑。在第一阶段完成以后,进入第二阶段。该阶段较第一阶段可以释放两个核,形成宏流水模式,于是在管理调度核的调度下,释放(1,0)、(1,1)号PE,线程b1、b2分别分配(0,0)、(0,1)号PE,通过子网的重构技术实现VCG的动态变化。到第三阶段,任务需求的资源不变,只需将子任务c1、c2调度上去即可。任务结束时,(0,0)、(0,1)号核相任务调度主核提交结果后,VCG在调度核的指导下完全释放。过程如图3所示。
进一步的,片网络上的路由器接收动态重构的指导信息,相应的路由算法实现VCG的重构。本方案需要动态可重构的片上网络(NOC)作为支持,而且片内互连网络系统具有高带宽、低延迟、易扩展的特性。
任务执行区包括多个PE,负责与调度单元通信以及执行多个程序(应用)。
本发明属于软、硬件协同完成众核系统的虚拟化技术。虚拟化层包括调度算法、编译指导命令、根据指导指令优化的编译器、调度单元、动态配置VCG的路由器,并且需要动态可重构的片上网络(NOC)作为支持。由于同一个程序的线程(函数)之间存在参数传递等关系,所有线程不可能同时并行,程序体现出阶段性特征,如图5所示。基于这种特性,调度算法能够指导VCG进行阶段性重构从而实现资源的在线增减。
在本发明中,由用户程序(应用)、调度算法、编译指导命令告知编译器应用相应的信息,而资源管理算法根据当前调度单元反映的资源使用情况为应用分配任务区空闲的PE,上述两方面都属于操作系统的用户态程序,最终生成编译信息,最后传给调度单元,调度单元不仅检测任务执行区的PE工作状态信息。而且根据编译信息把应用的线程与PE绑定,同时配置子网,形成单个任务独占的VCG,最后把线程交给任务执行区。
另外,本发明实施例还提供了一种无线传感器网络基于数据融合的多径路由装置。如图6所示,为本发明实施例提供的一种无线传感器网络基于数据融合的多径路由装置示意图。
一种基于众核系统的任务调度装置,其特征在于,所述装置包括管理调度单元及任务执行单元,通过根据操作系统和实际应用需要将微处理器众核系统划分成管理调度区和任务执行区,接着依据编译器的指导信息,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式,然后任务执行区根据调度程序给出的指导信息做出应对策略,进而实现动态、在线重构。
具体而言,在本发明实施例中,管理调度单元用于依据编译器的指导信息,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式。
具体而言,在本发明实施例中,任务执行单元用于任务执行区根据调度程序给出的指导信息做出应对策略,进而实现动态、在线重构。
具体而言,在本发明实施例中,管理调度单元针对不同应用和当前系统资源情况由调度算法以及编译指导命令生成编译信息,调度单元接收编译信息将需要调度的线程调度到合适的PE,构建满足要求的计算模式,通过配置子网形成合适的虚拟计算群VCG。
本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
综上所述,本文提供了一种基于众核系统的任务调度方法及装置,通过将微处理器众核系统划分成管理调度区和任务执行区,针对不同应用和当前系统资源情况由调度算法以及编译指导命令生成编译信息,调度单元接收编译信息将需要调度的线程调度到合适的PE,构建满足要求的计算模式,通过配置子网形成合适的虚拟计算群VCG;任务执行区在调度单元的调度下做出应对策略,进而实现动态、在线重构,本方案可提升使用众核平台的微处理器资源,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率。以上对本发明所提供的一种基于众核系统的任务调度方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方案;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种基于众核系统的任务调度方法,其特征在于,所述方法包括:
步骤一、将微处理器众核系统划分成管理调度区和任务执行区,所述管理调度区进一步包括调度算法、资源管理算法、编译指导命令和调度单元,所述调度算法、资源管理算法和编译指导命令均运行在操作系统用户态,调度单元工作在操作系统内核态,所述调度算法、资源管理算法、编译指导命令和调度单元被映射到有操作系统的管理调度区运行;
其中,所述资源管理算法基于树的数据结构,根据当前调度单元反映的资源使用情况为应用分配任务执行区空闲的处理器核,负责任务执行区空闲处理器核的管理;任务初始映射时,根据处理器核的数量以及这些处理器核形成的任务执行区拓扑形状和位置,在矩形资源管理树上挖去所需的资源,并把剩余空闲资源按照一定规则划分为几个分矩形,成为树的叶节点;在任务执行过程中,根据任务的在线运行需求,为其分配或释放处理器核资源;在任务完成后,释放所有被使用的资源,分矩形重新合并成空闲的矩形;
步骤二、依据编译指导命令,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的处理器核上,构建满足要求的计算模式;
步骤三、任务执行区根据调度算法给出的调度结果做出应对策略,进而实现程序运行时任务执行区计算资源及拓扑结构的动态重构。
2.根据权利要求1所述的方法,其特征在于,所述调度算法负责多个应用到任务执行区处理器核的映射。
3.根据权利要求1所述的方法,其特征在于,进一步包括根据不同应用特性由用户插入编译指导命令告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式细节情况,和调度算法配合指导下层调度单元做出相应策略。
4.根据权利要求1所述的方法,其特征在于,所述编译指导命令根据任务优先级、计算模式、线程阶段性告知编译器相应细节,使编译器认知任务的特性,同时配合调度算法,合理分析当前任务进程的实时资源需求情况,根据现有资源对处理器核其进行合理划分,并给出调度结果。
5.根据权利要求1所述的方法,其特征在于,所述调度单元不仅检测任务执行区的处理器核工作状态信息,而且根据调度结果把应用的线程与处理器核绑定,同时配置子网,形成单个任务独占的任务执行区,最后把线程交给任务执行区。
6.根据权利要求1所述的方法,其特征在于,所述步骤一中,管理调度区由一个或多个核组成,根据形成的进程/线程数,一个核运行专门用作调度单元。
7.根据权利要求1所述的方法,其特征在于,所述步骤二中,进一步包括,调度算法根据函数之间的数据传递、通信关系,调度能够即时运行的线程,同时根据程序的通信关系,安排线程所在处理器核的相对位置。
8.根据权利要求7所述的方法,其特征在于,所述根据程序的通信关系,安排线程所在处理器核的相对位置为通信量越大的线程安排在相对近处理器核上,反之亦然。
9.根据权利要求7所述的方法,其特征在于,所述调度算法在程序的每个阶段的线程全部完成时,进行一次阶段性重构,在线增加或释放处理器核,调整任务执行区和子网的形状与大小,实现程序运行时任务执行区计算资源及拓扑结构的动态重构。
10.根据权利要求7所述的方法,其特征在于,所述调度算法指导相应的任务执行区进行计算模式的重构或阶段性资源增减,同时调度单元发送给路由器相应的路由算法,最后形成含有不同数量处理器核、不同拓扑的任务执行区。
11.根据权利要求1所述的方法,其特征在于,所述步骤二中,进一步包括,编译指导命令运行在操作系统用户态,告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式细节情况,和调度算法配合指导下层调度单元做出相应策略,进行初始的动态调度。
12.根据权利要求1所述的方法,其特征在于,所述步骤三中,将所有精简的处理器核划为任务执行区,管理调度核运行操作系统和调度算法、编译指导命令;任务执行区根据调度程序给出的指导信息做出不同应对策略,该区实现程序运行时任务执行区计算资源及拓扑结构的动态重构,每一个任务执行区的规模和计算模式根据不同的应用和系统资源需求情况进行重构。
13.根据权利要求1或12所述的方法,其特征在于,所述步骤三中,任务执行区分为多个虚拟计算群任务执行区,每个虚拟计算群相互独立,根据应用的自身特性占用不同数目的处理器核。
14.根据权利要求1所述的方法,其特征在于,所述资源管理算法在任务执行过程中,若需在线添加处理器核,在树的拥有任务编号的最深的子节点下查找空闲的叶节点,判断该叶节点和所述任务相邻后,在叶节点中挖去与该任务相邻的资源,形成邻近分配。
15.根据权利要求1所述的方法,其特征在于,所述资源管理算法在任务执行过程中,若需在线释放处理器核,可在树的拥有任务编号的最深的子节点下查找叶节点,释放的处理器核与相邻叶节点可以实现矩形合并。
16.根据权利要求1所述的方法,其特征在于,所述资源管理算法在任务完成后,由根节点到所有叶节点依次除去任务编号,同时完成矩形资源的合并。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210285499.6A CN102831011B (zh) | 2012-08-10 | 2012-08-10 | 一种基于众核系统的任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210285499.6A CN102831011B (zh) | 2012-08-10 | 2012-08-10 | 一种基于众核系统的任务调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102831011A CN102831011A (zh) | 2012-12-19 |
CN102831011B true CN102831011B (zh) | 2015-11-18 |
Family
ID=47334160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210285499.6A Expired - Fee Related CN102831011B (zh) | 2012-08-10 | 2012-08-10 | 一种基于众核系统的任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102831011B (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104008013B (zh) * | 2013-02-26 | 2018-02-09 | 华为技术有限公司 | 一种核资源分配方法、装置及众核系统 |
CN104050137B (zh) * | 2013-03-13 | 2018-02-09 | 华为技术有限公司 | 一种异构操作系统中内核运行的方法及装置 |
CN103336756B (zh) * | 2013-07-19 | 2016-01-27 | 中国人民解放军信息工程大学 | 一种数据计算节点的生成装置 |
CN103605572A (zh) * | 2013-12-05 | 2014-02-26 | 用友软件股份有限公司 | 一种多线程计算装置 |
CN105210059B (zh) * | 2014-04-04 | 2018-12-07 | 华为技术有限公司 | 一种数据处理方法及系统 |
CN104077138B (zh) * | 2014-06-27 | 2017-08-29 | 中国科学院计算技术研究所 | 一种集成网络路由器的众核处理器系统及其集成方法和实现方法 |
CN104239153B (zh) * | 2014-09-29 | 2018-09-11 | 三星电子(中国)研发中心 | 多核cpu负载均衡的方法和装置 |
CN105528243B (zh) * | 2015-07-02 | 2019-01-11 | 中国科学院计算技术研究所 | 一种利用数据拓扑信息的优先级分组调度方法及系统 |
CN106371894B (zh) * | 2016-08-31 | 2020-02-14 | 华为技术有限公司 | 一种配置方法、装置和数据处理服务器 |
CN107329822B (zh) * | 2017-01-15 | 2022-01-28 | 齐德昱 | 面向多源多核系统的基于超任务网的多核调度方法 |
CN109214616B (zh) | 2017-06-29 | 2023-04-07 | 上海寒武纪信息科技有限公司 | 一种信息处理装置、系统和方法 |
CN110413551B (zh) | 2018-04-28 | 2021-12-10 | 上海寒武纪信息科技有限公司 | 信息处理装置、方法及设备 |
CN109426553A (zh) | 2017-08-21 | 2019-03-05 | 上海寒武纪信息科技有限公司 | 任务切分装置及方法、任务处理装置及方法、多核处理器 |
WO2019001418A1 (zh) | 2017-06-26 | 2019-01-03 | 上海寒武纪信息科技有限公司 | 数据共享系统及其数据共享方法 |
CN110502330A (zh) * | 2018-05-16 | 2019-11-26 | 上海寒武纪信息科技有限公司 | 处理器及处理方法 |
CN107330608B (zh) * | 2017-06-27 | 2021-04-23 | 宁波创元信息科技有限公司 | 一种基于神经元网络技术的生产排程方法 |
CN107682068B (zh) * | 2017-09-06 | 2021-04-06 | 西安电子科技大学 | 一种任务驱动的可重构空间信息网络资源管理架构及方法 |
CN110134074B (zh) * | 2018-02-02 | 2022-03-01 | 华中科技大学 | 一种生产线控制系统及其控制方法 |
CN108256263A (zh) * | 2018-02-07 | 2018-07-06 | 中国电力科学研究院有限公司 | 一种电力系统混合仿真并行计算系统及其任务调度方法 |
CN110879707B (zh) * | 2018-09-06 | 2022-10-14 | 迈普通信技术股份有限公司 | 编译任务执行方法及装置 |
CN111837104B (zh) * | 2019-02-21 | 2024-04-12 | 华为技术有限公司 | 一种在多个处理器之间调度软件任务的方法和装置 |
CN110502325B (zh) * | 2019-08-12 | 2023-06-02 | 北京和利时系统工程有限公司 | 一种任务运行方法及装置、计算机可读存储介质 |
CN112527393A (zh) * | 2019-09-18 | 2021-03-19 | 无锡江南计算技术研究所 | 面向主从融合架构处理器的指令调度优化装置和方法 |
CN112052081B (zh) * | 2020-08-13 | 2022-06-03 | 烽火通信科技股份有限公司 | 一种任务调度方法、装置及电子设备 |
CN112269649A (zh) * | 2020-11-20 | 2021-01-26 | 北京泽石科技有限公司 | 实现主机任务异步执行的方法及装置、系统 |
CN112416475A (zh) * | 2020-11-20 | 2021-02-26 | 清华大学 | 触发方法 |
CN112162846B (zh) * | 2020-11-27 | 2021-04-09 | 腾讯科技(深圳)有限公司 | 事务处理方法、设备及计算机可读存储介质 |
CN117178257A (zh) * | 2021-08-13 | 2023-12-05 | 华为技术有限公司 | 任务调度架构和方法 |
CN117851070B (zh) * | 2024-01-18 | 2024-06-07 | 北京怀美科技有限公司 | 应用于检测任务的计算芯片架构及计算方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261591A (zh) * | 2008-04-28 | 2008-09-10 | 艾诺通信系统(苏州)有限责任公司 | 多核dsp系统中自适应的任务调度方法 |
CN101788920A (zh) * | 2010-02-05 | 2010-07-28 | 北京航空航天大学 | 一种基于处理器分区技术的cpu虚拟化方法 |
CN102222022A (zh) * | 2011-07-15 | 2011-10-19 | 范示德汽车技术(上海)有限公司 | 基于多核处理器的实时任务调度方法 |
-
2012
- 2012-08-10 CN CN201210285499.6A patent/CN102831011B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261591A (zh) * | 2008-04-28 | 2008-09-10 | 艾诺通信系统(苏州)有限责任公司 | 多核dsp系统中自适应的任务调度方法 |
CN101788920A (zh) * | 2010-02-05 | 2010-07-28 | 北京航空航天大学 | 一种基于处理器分区技术的cpu虚拟化方法 |
CN102222022A (zh) * | 2011-07-15 | 2011-10-19 | 范示德汽车技术(上海)有限公司 | 基于多核处理器的实时任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102831011A (zh) | 2012-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102831011B (zh) | 一种基于众核系统的任务调度方法及装置 | |
CN112181382B (zh) | 一种基于软件定义的工业智能控制系统 | |
CN104991830B (zh) | 基于服务等级协议的yarn资源分配和节能调度方法及系统 | |
Liu et al. | A survey on workflow management and scheduling in cloud computing | |
CN103607466B (zh) | 一种基于云计算的广域多级分布式并行电网分析方法 | |
CN102508639B (zh) | 一种基于卫星遥感数据特征的分布式并行处理方法 | |
Zhou et al. | CASH: Supporting IaaS customers with a sub-core configurable architecture | |
CN107122243A (zh) | 用于cfd仿真计算的异构集群系统及cfd计算方法 | |
CN114996018A (zh) | 面向异构计算的资源调度方法、节点、系统、设备及介质 | |
Xiao et al. | Plasticity-on-chip design: Exploiting self-similarity for data communications | |
Li et al. | A cloud-terminal-based cyber-physical system architecture for energy efficient machining process optimization | |
CN107329822A (zh) | 面向多源多核系统的基于超任务网的多核调度方法 | |
Qayyum et al. | IoT-Orchestration based nanogrid energy management system and optimal time-aware scheduling for efficient energy usage in nanogrid | |
Song et al. | Energy efficiency optimization in big data processing platform by improving resources utilization | |
CN111639054A (zh) | 一种海洋模式与资料同化的数据耦合方法、系统及介质 | |
CN103299277B (zh) | Gpu系统及其处理方法 | |
CN104484230B (zh) | 基于近数据计算原则的多卫星数据中心工作流调度算法 | |
Silberstein et al. | An exact algorithm for energy-efficient acceleration of task trees on CPU/GPU architectures | |
Soni et al. | Constraint-based job and resource scheduling in grid computing | |
Nasonov et al. | The multi-level adaptive approach for efficient execution of multi-scale distributed applications with dynamic workload | |
Ghonoodi | Green Energy-aware task scheduling using the DVFS technique in Cloud Computing | |
Kaelbling et al. | Minimizing monitoring costs: Choosing between tracing and sampling | |
Raii et al. | Efficient clustering model for utilization of processor’s capacity in distributed computing system | |
CN111866188B (zh) | 具有ooda分形机制的计算机群构建方法 | |
Mrabet et al. | A clustering allocation and scheduling analysis approach for multiprocessor dependent real-time tasks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151118 Termination date: 20200810 |