一种基于众核系统的任务调度方法及装置的制作方法

文档序号:6374802阅读:133来源:国知局
专利名称:一种基于众核系统的任务调度方法及装置的制作方法
技术领域
本发明涉及计算机任务调度和资源映射技术领域,特别涉及ー种基于众核系统的任务调度方法及装置。
背景技术
目前,微处理器微体系结构的发展有以下四个重要趋势第一、单芯片集成的系统结构。采用SoC(System On Chip)技术实现传统计算机系统在单个芯片内的微型化和集成化是微处理器研究与设计的ー个重要趋势。在单个芯片内集成多个处理器核、核间互连网络以及片内多级存储层次,构成的单芯片多处理器CMP(Chip Multiprocessor)。随着芯片规模的不断扩大,未来的趋势是将更大規模的MPP系统(结点数目几十到上百数量级,甚至更多)集成到单个芯片上,形成众核(many-core)微处理器。第二、精简的处理器核心。在单片高集成度的前提下,处理器核功能的精简化(Reducing)是微处理器研究与设计的另ー 个重要趋势,如IBM的Cyclops 64,Cell以及OCPUnSPARC Tl等微处理器都采用了相对简单的处理器核。采用RISC (Reduced Instruction Set Computing)思想,精简化是将处理器核的逻辑根据目标应用的特性进行简化,保留用途最大(使用最频繁)的必要计算资源,形成精简处理器核。第三、应用为导向的可重构设计。分析目标应用的特性,面向目标应用的特性进行微体系结构设计是微处理器研究的另ー个重要趋势。随着社会的发展,不断出现的新应用对微处理器微体系结构提出了新的要求。第四、性能和功耗的权衡管理。随着集成度的提高,以及エ艺尺寸进步带来的漏电流増大,使功耗成为单芯片众核发展的障碍。因此,对处理器的要求从单ー的追求功耗,转移到了对能耗比的追求,以最低的功耗取得最高的性能。随着计算机微处理器发展的趋势与特点越来越明显,在保证性能要求和安全的前提下,众核的任务调度和资源映射等技术应运而生。其基本思想如下在尽可能少地损失性能的前提下,在底层硬件和上层应用之间加上虚拟层,它可以合理地进行硬件资源管理、任务调度、隔离不同应用等。但是随着众核系统中PE (Processor Element)的不断增加,高度増加的任务数目和计算量使现有技术无法满足调度和管理的需求。同时,现有的任务调度技术,没有体现出高度灵活性。一方面,针对动态性而言,现有技术制约了动态可重构。单个PE可能无法快速完成任务,需要ー些PE组成虚拟计算群VCG (Virtual Computing Group),构成功能更加强大的计算单元,才能根据实时资源需求和可靠性需求,支持单线程、多线程、SIMD、宏流水和冗余计算等基本计算模式,从而满足系统要求。另ー方面,针对在线重构性,对单个任务而言,现有的任务调度技术无法实现在任务执行期间,为其在线添加或释放资源,同时保证其他任务的正常运行。因此,如何最大限度的使用众核平台的微处理器资源,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率,使系统满足不同应用的需求,成为未来众核发展的关键技木。针对现有技术中存在的问题,本方案提出一种基于众核系统的任务调度方法及装置是计算机任务调度和资源映射技术领域目前急待解决的问题之一。

发明内容
有鉴于此,本发明实施例提出了一种基于众核系统的任务调度方法及装置,通过将微处理器众核系统划分成管理调度区和任务执行区,针对不同应用和当前系统资源情况由调度算法以及编译指导命令生成编译信息,调度单元接收编译信息将需要调度的线程调度到合适的PE,构建满足要求的计算模式,通过配置子网形成合适的虚拟计算群VCG ;任务执行区在调度单元的调度下做出应对策略,进而实现动态、在线重构,本方案可提升使用众核平台的微处理器资源,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率。为解决上述技术问题,本发明实施例的目的是通过以下技术方案实现的—种基于众核系统的任务调度方法,包括 步骤一、微处理器众核系统划分成管理调度区和任务执行区;步骤ニ、依据编译指导信息,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式;步骤三、任务执行区根据调度程序给出的指导信息做出应对策略,进而实现动态、在线重构。优选的,上述步骤一中,进ー步包括调度算法、资源管理算法、编译指导命令在操作系统用户态,调度単元工作在操作系统内核态,映射到有操作系统的管理调度区。优选的,上述调度算法负责多个应用到任务执行区PE的映射。优选的,上述资源管理算法基于树的数据结构,根据当前调度单元反映的资源使用情况为应用分配任务区空闲的PE,负责任务执行区空闲PE的管理。优选的,进ー步包括根据不同应用特性由用户插入编译指导命令告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式等细节情况,和调度算法配合指导下层调度单元做出相应策略。优选的,上述编译指导命令根据任务优先级、计算模式、线程阶段性等告知编译器相应细节,使编译器认知任务的特性,同时配合调度算法,合理分析当前任务进程的实时资源需求情況,根据现有资源对PE进行合理划分,并给出编译信息。优选的,上述调度单元不仅检测任务执行区的PE工作状态信息,而且根据编译信息把应用的线程与PE绑定,同时配置子网,形成单个任务独占的VCG,最后把线程交给任务执行区。优选的,上述步骤一中,管理调度区由I个核组成,根据形成的进程/线程数,ー个核运行专门用作调度单元。优选的,上述步骤ニ中,进ー步包括,调度算法根据函数(线程)之间的数据传递、通信等关系,调度能够即时运行的线程,同时根据程序的通信关系,安排线程所在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;任务执行区在调度单元的调度下做出应对策略,进而实现动态、在线重构,本方案可提升使用众核平台的微处理器资源,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率。


图I为本发明一种基于众核系统的任务调度方法不意图;图2为本方案众核系统模型不意图;图3为本方案任务动态重构示意图;图4为本方案基于矩形的众核资源管理示意图;图5为本方案任务执行阶段性模型示意示意图;
图6为本发明一种基于众核系统的任务调度不意图。
具体实施例方式本发明实施例提供的一种基于众核系统的任务调度方法及装置,通过将微处理器众核系统划分成管理调度区和任务执行区,针对不同应用和当前系统资源情况由调度算法以及编译指导命令生成编译信息,调度单元接收编译信息将需要调度的线程调度到合适的PE,构建满足要求的计算模式,通过配置子网形成合适的虚拟计算群VCG;任务执行区在调度単元的调度下做出应对策略,进而实现动态、在线重构,本方案可提升使用众核平台的微处理器资源,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率。为使本发明的目的、技术方案及优点更加清楚明白,下面參照附图并举实施例,对本发明进一歩详细说明。本发明的主要思路为提出了一种基于众核系统的任务调度方法及装置。针对众核系统,本方案采用软、硬件协同的方式实现众核系统资源的动态、在线映射。根据操作系统和实际应用需要把所有PE划分成管理调度区和任务执行区,调度程序在操作系统之上,映射到有操作系统的管理区,实现资源的动态在线管理;多种应用映射到任务执行区。管理调度区根据自身操作系统的复杂性动态占用ー个或多个PE ;任务执行区分为多个VCG,每个虚拟计算群相互独立,根据应用的自身特性占用不同数目的PE。本发明实施例提供一种基于众核系统的任务调度方法,如图I所示,具体步骤包括步骤一、根据操作系统和实际应用需要将微处理器众核系统划分成管理调度区和任务执行区;具体而言,在本发明实施例中,将根据操作系统和实际应用需要把所有PE划分成管理调度区和任务执行区,管理调度程序在操作系统之上,映射到有操作系统的管理调度区,实现资源的动态在线管理;多种应用映射到任务执行区。进ー步的,在本方案中,针对众核平台的特点,将系统中主核放在拓扑的中央,将众多精简PE按照功能任务执行区(如图2所示)。本发明的实施例中,提出了一种基于100个微处理器众核系统的动态重构方法。管理调度区由I个核组成,根据形成的进程/线程数,一个核运行专门用作调度单元。任务执行区由99个核组成。在用户态的程序中插入编译指导命令,单个程序由于函数数据传递以及函数间通信,在用户的编译指导命令下形成3个执行阶段A、B、C,A (al、a2、a3、a4),B (bl、b2),C(Cl,c2),括号内代表阶段内需要执行的子任务。编译指导命令要求阶段A使用多线程并行计算模式,阶段B使用宏流水计算模式,阶段C使用冗余计算模式。在本方案中,管理调度区进ー步包括调度算法、资源管理算法、编译指导命令在操作系统用户态,调度単元工作在操作系统内核态,映射到有操作系统的管理调度区。调度算法负责多个应用到任务执行区PE的映射。资源管理算法基于树的数据结构,根据当前调度单元反映的资源使用情况为应用分配任务区空闲的PE,负责任务执行区空闲PE的管理。资源管理算法根据不同应用特性由用户插入编译指导命令告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式等细节情况,和调度算法配合指导下层调度单元做出相应策略。在本方案中,资源管理算法,任务初始映射根据PE的数量以及这些PE形成的VCG拓扑形状和位置,在矩形资源上挖去所需的资源,并把其他空闲资源划按照一定规则分为几个小矩形,成为树的叶节点;在任务执行过程中,根据任务的在线运行需求,为其分配或释放PE资源;在任务完成后,释放所有被使用的资源,小矩形重新合并成空闲的大矩形。在
任务执行过程中,若需在线添加PE,可在树的拥有该任务编号的最深的子节点下查找空闲的叶节点,判断该叶节点和原有任务相邻后,在叶节点中挖去与该任务相邻的资源,形成邻近分配。在任务执行过程中,若需在线释放PE,可在树的拥有该任务编号的最深的子节点下查找叶节点,释放的PE与相邻叶节点可以实现矩形合井。在任务完成后,由根节点到所有叶节点依次除去任务编号,同时完成矩形资源的合井。其中,编译指导命令根据任务优先级、计算模式、线程阶段性等告知编译器相应细节,使编译器认知任务的特性,同时配合调度算法,合理分析当前任务进程的实时资源需求情況,根据现有资源对PE进行合理划分,并给出编译信息。调度单元不仅检测任务执行区的PE工作状态信息,而且根据编译信息把应用的线程与PE绑定,同时配置子网,形成单个任务独占的VCG,最后把线程交给任务执行区。在本方案中,管理调度区由I个核组成,根据形成的进程/线程数,ー个核运行专门用作调度单元。管理调度区包括(I)任务调度算法、资源管理算法、编译指导命令,它们工作在操作系统之上,属于用户态的程序任务调度算法负责多个应用到任务执行区PE的映射;资源管理算法负责任务执行区空闲PE的管理,使用基于树的数据结构;而根据不同应用特性由用户插入编译指导命令告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式等细节情况,和调度算法配合指导下层调度单元做出相应策。由于有编译指导命令,所以需要根据编译指导命令优化的编译器。(2)调度单元工作在操作系统之上,属于内核态的程序(即生产厂家根据本专利的思想把所需的功能固定,以后不能改变其功能,属于操作系统内部基本功能)。调度单元负责a告诉操作系统资源的使用情況,b接收编译信息根据编译信息告知的当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式,通过配置子网实现动态构建新的合适规模的VCG群,实现资源管理的虚拟化。步骤ニ、依据编译器的指导信息,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式;具体而言,在本发明实施例中,调度程序在操作系统之上,映射到有操作系统的管理区,实现资源的动态在线管理;多种应用映射到任务执行区。管理调度区根据自身操作系统的复杂性动态占用ー个或多个PE。本发明的实施例中,提出了一种基于100个微处理器众核系统的动态重构方法。管理调度区由I个核组成,根据形成的进程/线程数,一个核运行专门用作调度单元。即,主核(Manage Processor)用于管理调度,划分为管理调度区。进ー步的,在本方案中,调度算法根据函数(线程)之间的数据传递、通信等关系,调度能够即时运行的线程,同时根据程序的通信关系,安排线程所在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,并且根据任务的实时资源需求和可靠性需求,采用五种基本计算模式(I、单线程、单处理模式2、单线程、SMD模式3、多线程模式4、宏流水模式5、冗余计算模式)或混合计算模式,充分开发多层次并行性,提高资源利用率,減少任务执行时间。e)不同应用在不同时间内需要的PE资源以及计算模式可能发生改变,为了达到更好的性能,VCG中PE的组织形式以及排布的可能需要调整,个别PE需要临时加入或剔除,动态重构新的VCG群。f)向调度单元发送的健康信息不仅包括该PE的连接状态与工作信息,在必要时还应该有关键任务执行的ー些关键状态,例如定期向调度单元发送关键任务当前已完成的进程。若在一段时期的等待以后未收到健康信息,认为该PE处在不健康状态,在注册信息中除去该节点,并进行异常处理,例如重新启动等。g)调度单元占用的核数根据单个VCG规模、任务数量、VCG数量、计算复杂性和实时性要求可适当改变。S卩,调度単元工作在操作系统之上,属于内核态的程序(即生产厂家根据本专利的思想把所需的功能固定,以后不能改变其功能,属于操作系统内部基本功能)。调度单元负责a告诉操作系统资源的使用情況,b接收编译信息根据编译信息告知的当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式,通过配置子网实现动态构建新的合适规模的VCG群,实现资源管理的虚拟化。其中,编译指导命令可以有set_schedcore(int sub_tid, int PE_id)、set_priotity(int priority)、set_compute_modeunt mode)、insert_task(int priority)>set_safelvl (int safe) > 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)任务完成后,由根节点到所有叶节点依次除去任务编号,同时完成矩形资源的
I=I TT。步骤三、任务执行区根据调度程序给出的指导信息做出应对策略,进而实现动态、在线重构。具体而言,在本发明实施例中,将所有精简的微处理器(PE)划为任务执行区,管理调度核运行操作系统和调度程序;任务执行区根据调度程序给出的指导信息做出不同应对策略,该区可以实现动态、在线重构,每ー个VCG的规模和计算模式根据不同的应用和系统资源需求情况进行重构。任务执行区分为多个VCG,每个虚拟计算群相互独立,根据应用的自身特性占用不同数目的PE。进ー步的,在本发明的实施例中,提出了一种基于100个微处理器众核系统的动态重构方法。管理调度区由I个核组成,根据形成的进程/线程数,ー个核运行专门用作调度单元。任务执行区由99个核组成。在本方案中,系统整个任务分配ー个VCG,首先在第一阶段为A分配四个PE。线程al-a4分别分配(0,O)、(0,I)、(1,O)、(1,I)号PE,在形成左下角的规则矩形拓扑。在第一阶段完成以后,进入第二阶段。该阶段较第一阶段可以释放两个核,形成宏流水模式,于是在管理调度核的调度下,释放(1,O)、(1,I)号PE,线程bl、b2分别分配(0,O)、(0,I)号PE,通过子网的重构技术实现VCG的动态变化。到第三阶段,任务需求的资源不变,只需将子任务Cl、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 ;任务执行区在调度单元的调度下做出应对策略,进而实现动态、在线重构,本方案可提升使用众核平台的微处理器资源,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率。以上对本发明所提供的一种基于众核系统的任务调度方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方案;同吋,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明 书内容不应理解为对本发明的限制。
权利要求
1.一种基于众核系统的任务调度方法,其特征在于,所述方法包括 步骤一、微处理器众核系统划分成管理调度区和任务执行区; 步骤ニ、依据编译指导信息,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式; 步骤三、任务执行区根据调度程序给出的指导信息做出应对策略,进而实现动态、在线重构。
2.根据权利要求I所述的方法,其特征在于,所述步骤一中,进ー步包括调度算法、资源管理算法、编译指导命令在操作系统用户态,调度単元工作在操作系统内核态,映射到有操作系统的管理调度区。
3.根据权利要求2所述的方法,其特征在于,所述调度算法负责多个应用到任务执行区PE的映射。
4.根据权利要求2所述的方法,其特征在于,所述资源管理算法基于树的数据结构,根据当前调度单元反映的资源使用情况为应用分配任务区空闲的PE,负责任务执行区空闲PE的管理。
5.根据权利要求2所述的方法,其特征在干,进ー步包括根据不同应用特性由用户插入编译指导命令告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式等细节情况,和调度算法配合指导下层调度单元做出相应策略。
6.根据权利要求2所述的方法,其特征在于,所述编译指导命令根据任务优先级、计算模式、线程阶段性等告知编译器相应细节,使编译器认知任务的特性,同时配合调度算法,合理分析当前任务进程的实时资源需求情況,根据现有资源对PE其进行合理划分,并给出编译信息。
7.根据权利要求2所述的方法,其特征在于,所述调度单元不仅检测任务执行区的PE工作状态信息,而且根据编译信息把应用的线程与PE绑定,同时配置子网,形成单个任务独占的VCG,最后把线程交给任务执行区。
8.根据权利要求I或2所述的方法,其特征在于,所述步骤一中,管理调度区由ー个或多个核组成,根据形成的进程/线程数,一个核运行专门用作调度单元。
9.根据权利要求I所述的方法,其特征在于,所述步骤ニ中,进ー步包括,调度算法根据函数(线程)之间的数据传递、通信等关系,调度能够即时运行的线程,同时根据程序的通信关系,安排线程所在PE的相对位置。
10.根据权利要求9所述的方法,其特征在干,所述根据程序的通信关系,安排线程所在PE的相对位置为通信量越大的线程应该安排在相对近PE上,反之亦然。
11.根据权利要求9所述的方法,其特征在于,所述调度算法在程序的每个阶段的线程全部完成时,进行一次阶段性重构,在线增加或释放PE,调整VCG和子网的形状与大小,实现任务的在线重构。
12.根据权利要求9所述的方法,其特征在于,所述调度算法指导相应的VCG进行计算模式的重构或阶段性资源增减,同时调度单元发送给路由器相应的路由算法,最后形成含有不同数量PE、不同拓扑的VCG。
13.根据权利要求I所述的方法,其特征在于,所述步骤ニ中,进ー步包括,编译指导命令运行在操作系统用户态,告知编译器应用的实时性与优先级、单个任务的阶段划分、以及合适的计算模式等细节情况,和调度算法配合指导下层调度单元做出相应策略,进行初始的动态调度。
14.根据权利要求I所述的方法,其特征在于,所述步骤三中,将所有精简的微处理器(PE)划为任务执行区,管理调度核运行操作系统和调度算法、编译指导命令;任务执行区根据调度程序给出的指导信息做出不同应对策略,该区可以实现动态、在线重构,每ー个VCG的规模和计算模式根据不同的应用和系统资源需求情况进行重构。
15.根据权利要求I或14所述的方法,其特征在于,所述步骤三中,任务执行区分为多个虚拟计算群VCG,每个虚拟计算群相互独立,根据应用的自身特性占用不同数目的PE。
16.根据权利要求I所述的方法,其特征在于,所述步骤一中,进ー步包括资源管理算法,任务初始映射根据PE的数量以及这些PE形成的VCG拓扑形状和位置,在矩形资源上挖去所需的资源,并把其他空闲资源划按照一定规则分为几个小矩形,成为树的叶节点;在任务执行过程中,根据任务的在线运行需求,为其分配或释放PE资源;在任务完成后,释放所有被使用的资源,小矩形重新合并成空闲的大矩形。
17.根据权利要求16所述的方法,其特征在于,所述资源管理算法在任务执行过程中,若需在线添加PE,可在树的拥有该任务编号的最深的子节点下查找空闲的叶节点,判断该叶节点和原有任务相邻后,在叶节点中挖去与该任务相邻的资源,形成邻近分配。
18.根据权利要求16所述的方法,其特征在于,所述资源管理算法在任务执行过程中,若需在线释放PE,可在树的拥有该任务编号的最深的子节点下查找叶节点,释放的PE与相邻叶节点可以实现矩形合井。
19.根据权利要求16所述的方法,其特征在于,所述资源管理算法在任务完成后,由根节点到所有叶节点依次除去任务编号,同时完成矩形资源的合井。
20.一种基于众核系统的任务调度装置,其特征在于,所述装置包括管理调度单元及任务执行単元,通过根据操作系统和实际应用需要将微处理器众核系统划分成管理调度区和任务执行区,接着依据编译器的指导信息,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式,然后任务执行区根据调度程序给出的指导信息做出应对策略,进而实现动态、在线重构。
21.根据权利要求20所述的装置,其特征在于,所述管理调度单元用于依据编译器的指导信息,调度单元根据当前应用阶段性需求,将需要调度的线程调度到合适的PE上,构建满足要求的计算模式。
22.根据权利要求20所述的装置,其特征在于,所述任务执行单元用于任务执行区根据调度程序给出的指导信息做出应对策略,进而实现动态、在线重构。
23.根据权利要求20所述的装置,其特征在于,所述管理调度单元针对不同应用和当前系统资源情况由调度算法以及编译指导命令生成编译信息,调度单元接收编译信息将需要调度的线程调度到合适的PE,构建满足要求的计算模式,通过配置子网形成合适的虚拟计算群VCG。
全文摘要
本发明提供了一种基于众核系统的任务调度方法及装置,通过将微处理器众核系统划分成管理调度区和任务执行区,针对不同应用和当前系统资源情况由调度算法以及编译指导命令生成编译信息,调度单元接收编译信息将需要调度的线程调度到合适的PE(Processor Element),构建满足要求的计算模式,通过配置子网形成合适的虚拟计算群VCG(Virtual Computing Group);任务执行区在调度单元的调度下做出应对策略,进而实现动态、在线重构,本方案可提高众核平台的微处理器资源利用率,高效调度任务集,优化系统性能,提高精简众核系统的吞吐率。
文档编号G06F9/48GK102831011SQ201210285499
公开日2012年12月19日 申请日期2012年8月10日 优先权日2012年8月10日
发明者付宇卓, 刘子杨, 蒋江, 刘婷 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1