本发明涉及电子技术领域,具体而言,涉及一种片上网络任务调度方法及装置。
背景技术:
随着当今社会信息技术的高速发展,掌上智能终端、自动化控制以及大数据计算处理等众多应用领域对集成电路片上系统的功能和性能提出了更高的要求,多核片上系统的集成度大幅提高,致使极大地增加了片上系统的复杂度及实现难度。高性能多核片上系统的发展趋势必然是片上网络的发展及应用。
片上网络借鉴了计算机互联网络的结构,解决了片上系统传统总线结构的通信瓶颈问题。但是片上网络的任务调度是典型的NP问题,具有较高的时间复杂度,需要同时考虑通信功耗及通信时间等性能指标。目前所采用的调度方法主要的是传统的进化思想,对交叉率、变异率等参数的依赖性强,且上述参数的选择大多是依靠经验选取。另外,传统的进化思想还存在对初始种群的选择具有一定的依赖性,调度方案易陷入局部最优以及进化算法的并行机制未得到充分利用等缺陷。
技术实现要素:
有鉴于此,本发明的目的在于提供一种片上网络任务调度方法及装置,以改善上述问题。
本发明实施例提供一种片上网络任务调度方法,该方法包括:
根据片上网络的任务图以及各任务之间的执行关系进行任务分组,其中,所述执行关系包括并行关系和偏序关系;
生成初始种群,该初始种群包括多个部落,每个部落由与任务分组后得到的所有任务组一一对应的量子染色体构成,不同部落解码后对应不同的调度方案;
基于量子进化算法及预先设定的用于衡量调度方案性能指标的适应度函数对所述初始种群进行进化迭代,得到最优的调度方案,所述性能指标包括通信功耗及通信时间;
根据所述最优的调度方案,将各个任务组调度到对应的处理核。
本发明另一实施例提供一种片上网络任务调度装置,该装置包括:
任务分组模块,用于根据片上网络的任务图以及各任务之间的执行关系进行任务分组,其中,所述执行关系包括并行关系和偏序关系;
种群生成模块,用于生成初始种群,该初始种群包括多个部落,每个部落由与任务分组后得到的所有任务组一一对应的量子染色体构成,不同部落解码后对应不同的调度方案;
进化迭代及调度方案生成模块,用于基于量子进化算法及预先设定的用于衡量调度方案性能指标的适应度函数对所述初始种群进行进化迭代,得到最优的调度方案,所述性能指标包括通信功耗及通信时间;
任务调度模块,根据所述最优的调度方案,将各个任务组调度到对应的处理核。
本发明实施例提供的片上网络任务调度方法及装置,根据各任务之间的执行关系进行任务分组后,基于量子进化算法及以优化通信功耗和通信时间为目标进行任务调度,减少了调度结果对进化参数及初始种群的依赖性,充分利用了量子进化的并行机制,最终获得满足优化性能指标的最优调度方案。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种智能设备的方框示意图;
图2为本发明实施例提供的一种片上网络任务调度方法的流程图;
图3为本发明实施例提供的实验用例中片上网络任务图的示意图;
图4为片上网络为4行4列时的任务调度结果示意图;
图5为片上网络为3行3列时的任务调度结果示意图;
图6为本发明实施例提供的一种片上网络任务调度装置的功能模块框图。
图标:100-智能设备;110-片上网络任务调度装置;120-存储器;130-处理器;1102-任务分组模块;1104-种群生成模块;1106-进化迭代及调度方案生成模块;1108-任务调度模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,是本发明实施例提供的一种可应用片上网络任务调度方法的智能设备100的方框示意图。所述智能设备100可以是,但不限于,PC机、智能手机、服务器等。该智能设备100包括片上网络任务调度装置110、存储器120以及处理器130。
所述存储器120与处理器130之间可通过一条或多条通讯线路或信号线实现电性连接。所述片上网络任务调度装置110包括至少一个可以软件或固件的形式存储于所述存储器120中或固化在所述智能设备100的操作系统中的软件功能模块。所述处理器130用于执行所述存储器120中存储的可执行模块,例如所述片上网络任务调度装置110所包括的软件功能模块及计算机程序等。
如图2所示,是本发明实施例提供的一种片上网络任务调度方法的流程图。所应说明的是,本发明提供的方法不以图2及以下所述的具体顺序为限制。下面将对图2所示的各步骤进行详细阐述。
步骤S101,根据片上网络的任务图以及各任务之间的执行关系进行任务分组。
本实施例中,所述执行关系包括并行关系和偏序关系。所述并行关系是指两个任务之间不存在通信依赖,可以被并行执行。所述偏序关系是指两个任务之间存在通信依赖,执行顺序需要分先后。
所述片上网络的任务图为有向无环图。基于该任务图及任务之间的执行关系进行分组的过程包括如下子步骤:
子步骤S1:选择所述任务图中任意一个无前驱结点的任务结点作为起始结点,判断该起始结点是否存在直接后继结点,若存在,则沿一条包括所述起始结点的分支顺位选择至少一个后继结点作为该起始结点的同组任务结点,若不存在,则直接将该起始结点独立地作为一个任务分组。
子步骤S3:在所述任务图中对已完成分组的任务结点进行标记,并将尚未被标记的各个任务结点构成的任务图作为新的任务图。
以及子步骤S5:基于得到的所述新的任务图,重复执行步骤S1和S3,直至最初始的任务图中的所有任务结点已全部被标记。
更进一步地,该方法在进行任务分组前,还预先设定有一用于控制所述任务组包含的任务总数的热点阈值,以防止任务组包括过多任务时,造成芯片过热点的产生,致使系统性能不稳定。由此,所述子步骤S1中沿分支构建任务路径时,所选择的后继结点的数目应小于或等于所述热点阈值。
此外,当在执行所述子步骤S1时,若起始结点存在多个直接后继结点,则优选具有最大通信量的任务结点作为该起始结点的同组任务结点,然后再在所选择的任务结点的所有直接后继结点中继续选择具有最大通信量的任务结点作为所述起始结点的同组任务结点,如此下去,直至顺位选择的任务结点数目达到所述热点阈值或者所有结点都已经被分组完毕。
由上述的描述可以看出,基于有向无环的片上网络任务图及任务之间的执行关系进行任务分组时,应从没有前驱的任务结点开始,沿着一条分支选择后继任务结点,构建一条到达叶子任务结点的任务路径。在构建过程中,只能选择还未被其他路径构建过的任务结点。并且如果当前的任务结点存在多个可选分支,则优选通信流量大、通信功耗或者通信时延长等有利于进行性能优化的分支。另外,在每选择一个新的结点构建任务路径时,应判断是否达到预先设置的热点阀值,若已达到,则结束当前任务路径的构建,并将该路径上所包含的任务结点分配至同一任务组。
步骤S103,生成初始种群,该初始种群包括多个部落,每个部落由与任务分组后得到的所有任务组一一对应的量子染色体构成。
本实施例中,生成初始种群的过程为,首先对任务组及所述片上网络中的处理核进行编号。其中,对任务组进行编号时可以是但不限于,依照每个任务组的构建顺序进行依次标号;对处理核进行编号时可以是但不限于,依照每个处理核的位置进行依次编号。
然后,针对各个任务组分别进行概率幅度编码,生成与该任务组对应的量子染色体。所有的量子染色体构成一个部落。其中,该部落中与第i个任务组对应的量子染色体表示为:
αij表示第i个任务组被调度至第j个处理核的概率幅度,βij表示第i个任务组未被调度至第j个处理核的概率幅度,|αij|2+|βij|2=1,
i=1,2…n,j=1,2…m。其中,n表示任务组的总数目,m表示所述片上网络中的处理核的总数目。
按照上述生成部落的方法不断重复,直至生成的部落总数达到预定个数后,将已生成的所有部落构成所述初始种群。
步骤S105,基于量子进化算法及预先设定的用于衡量调度方案性能指标的适应度函数对所述初始种群进行进化迭代,得到最优的调度方案。所述性能指标包括通信功耗及通信时间。
本实施例中,基于所述初始种群进行进化迭代得到最优调度方案的具体过程包括,首先对所述初始种群中的各个部落分别进行解码,得到每个部落对应的调度方案。
其中,对所述部落进行解码的方式为,获取该部落的每个量子染色体中的各个量子位的状态。然后按照任务组编号,依次针对每个量子染色体将其中所有状态为1的量子位对应的处理核都纳入第一备选处理核集,并将第一备选处理核集中未被标记过的且具有最大概率幅度的处理核标记为该量子染色体对应的任务组所应被调度到的目标处理核。若当前的量子染色体中不存在状态为1的量子位或者所述第一备选处理核集中的元素已全部被标记过时,则将该量子染色体中所有状态为0的量子位对应的处理核都纳入第二备选处理核集,然后将第二备选处理核集中未被标记过的且具有最大概率幅度的处理核标记为该量子染色体对应的任务组所应被调度到的目标处理核。
其次,按照预先设定的适应度函数计算出每个调度方案的性能指标,并根据所述性能指标以非支配排序算法确定当前的最优调度方案。
本实施例中,所述适应度函数包括计算通信功耗的第一函数以及计算通信时间的第二函数。所述第一函数为:
Power=Σ1≤i,j≤m(Plink*hopi,j+Pswitch*(hopi,j+1))
其中,i和j表示具有通信依赖关系的两个处理核的编号。m表示处理核的总数目。hopij表示两个处理核i和j之间的通信路径所经历的链路条数,即跳数。Plink表示每条通信链路上的功耗。Pswitch表示每个交换结点的功耗。此处采用的Plink和Pswitch两个功耗参数值来自于R.Das等人在文献“Design and evaluation of a hierarchical on-chipinterconnect for next-generation CMPs”和“Optimizing NUCA organizations andwiring alternatives for large caches with CACTI 6.0”中提出的模型,是与通信流量相关的函数。
所述第二函数为:
Time=∑1≤i,j≤m(Tlink*hopi,j+Tswitch*(hopi,j+1))
其中,Tlink表示每一条通信链路上传输数据的时间。Tswitch表示在一个交换结点中路由缓存排队的时间。Tlink和Tswitch的参数值来自于N.Muralimanohar等人在文献“Optimizing NUCA organizations andwiring alternatives for large caches with CACTI 6.0”和“A delay optimal coterie on the k-dimensional folded Petersengraph”中提出的模型,同样是与通信流量相关的函数。
再次,判断当前是否已满足预先设定的迭代终止条件。若满足,则终止迭代,输出所述最优调度方案。若不满足,则选择预定个数的性能指标最高的调度方案所对应的部落组成精英团,并采用量子旋转门对位于所述精英团以外的所有满足预设更新条件的部落中的每个量子染色体进行更新。所述量子旋转门表示为:
其中,表示待更新的部落中第p个任务组所对应的量子染色体中的第q个量子位。表示更新后的量子位。θ为根据当前的最优调度方案所对应的部落与该待更新的部落之间的性能指标之差确定的旋转角,该旋转角的方向由待更新的量子位的概率幅度确定。
本实施例中,所述迭代终止条件可以是达到预先设定的迭代终止次数时,则终止进化迭代。所述更新条件可以是大于预先设定的一性能指标阈值。此外,所述旋转角的方向确定方式可以是但不限于,当αpq>βpq时设置为正方向,反之设置为反方向。
最后,将更新后的部落与所述精英团共同构成新的种群,并基于该新的种群继续进行进化迭代,直至满足迭代终止条件后,输出当前的最优调度方案。
步骤S107,根据所述最优的调度方案,将各个任务组调度到对应的处理核。
下面示例性的举出一实验用例,以更进一步详细的阐述本实施例提供的片上网络任务调度方法。如图3所示,是本实验用例中的片上网络任务图。图中结点表示任务结点。两任务结点之间连线上的数字表示通信流量。
基于该任务图进行分组时,预先设定所述热点阈值为3,即每个任务组最多包含3个任务结点。然后,选择不存在直接前驱的任务结点,按照偏序关系,沿着结点分支,依次选择归于同一分组的任务结点,直至当任务结点数目超过热点阀值时终止该次分组。在所述任务图中除去已完成分组的任务结点后,再重新选择不存在直接前驱的任务结点开始新一轮任务分组。按此方法,图3所示的任务图中的任务被分为8个组,分组情况如下:
组1:0,2,7;组2:1,5,11;组3:3,8,14;组4:4,9,15;
组5:6,12,17;组6:10,16,19;组7:13,18,20;组8:21。
根据构建路径的结点顺序,可以得到任务的调度顺序,如表1所示:
表1任务调度顺序表
完成上述任务分组后,根据量子进化思想将8个任务组调度至片上网络的处理核上。本实施例中,采用4行4列的片上网络,处理核总数为16个。预定生成部落总个数为100,即初始种群包含100个进化部落。设置迭代总次数100次,每代选择10个性能指标最高的部落构成精英团。每个部落的8个任务组分别进行量子染色体编码,初始编码值随机产生,例如第k个部落Tk中的8个任务组分别对应的8条量子染色体编码为:
对初始种群的每个部落中的量子染色体进行解码。每个部落的量子染色体解码后都得到任务组的一种调度方案。例如上述部落Tk的量子染色体进行解码,观察量子染色体的每个量子位的状态。以第一条染色体Ck1为例,观察其状态值为(0,1,1,0,0,1,0,1,1,0,1,1,0,0,0,1)。在量子位取值为1的位序所对应的处理核,即编号为2,3,6,8,9,11,12,16的处理核中选择还没有被调度的并且概率幅度值最大的处理核,作为第一个任务组的调度核。以此方法对部落Tk中的其他染色体进行解码,得到其他任务组的调度核。据此得到部落Tk对应的一种调度方案为:任务组1调度到处理核2,任务组2调度到处理核5,任务组3调度到处理核1,任务组4调度到处理核3,任务组5调度到处理核12,任务组7调度到处理核9,任务组8调度到处理核13。按照此方法对其他部落的染色体进行解码,得到相应的调度方案,因为设置了100个部落,故可以得到100种调度方案。
根据预先设定的适应度函数计算每一种方案的性能指标,作为评价调度方案的适应度的依据。然后通过非支配排序从中选出最优的方案标记为最优调度方案。并且根据性能指标选取适应度从高到低的10个方案纳入精英团。精英团对应的量子染色体自动进入下一轮进化迭代。判断当前迭代次数是否大于预设值100,如果大于100,则终止进化,输出当前获得的最优调度方案,如果小于100,则继续进行下一次进化迭代。
继续进行进化迭代时,需要进行量子染色体的更新。根据量子染色体适应度大小,对满足更新条件的染色体,参考最优调度方案中的染色体对应的量子位进行更新,更新公式如下:
例如当前量子染色体为最优调度方案中的第i条染色体为根据染色体Di和Bi适应度差值,调整旋转门的角度θ。θ的方向根据量子位的概率幅度进行选取,例如Bi的第1个量子位概率幅度是αi1>βi1,则旋转角θ为正。带入更新公式计算,得到更新后的染色体为:
更新后的量子染色体向最优染色体趋近,但是又不完全等同最优染色体,如此在逐渐优化的同时,也避免了陷入过早收敛。
根据上述过程,在进化迭代结束后得到的任务组的最优调度方案如图4所示。该方案所得通信功耗为1.4058e-06J,通信时间为4.0837e-04ms。若采用3行3列的片上网络结构,得到的最优调度方案如图5所示。该方案的通信功耗为1.4297e-06J,通信时间为4.2597e-04ms。
如图6所示,是本发明实施例提供的一种片上网络任务调度装置110的功能模块框图。该装置包括任务分组模块1102、种群生成模块1104、进化迭代及调度方案生成模块1106以及任务调度模块1108。
所述任务分组模块1102,用于根据片上网络的任务图以及各任务之间的执行关系进行任务分组,其中,所述执行关系包括并行关系和偏序关系。
所述种群生成模块1104,用于生成初始种群,该初始种群包括多个部落,每个部落由与任务分组后得到的所有任务组一一对应的量子染色体构成,不同部落解码后对应不同的调度方案。
所述进化迭代及调度方案生成模块1106,用于基于量子进化算法及预先设定的用于衡量调度方案性能指标的适应度函数对所述初始种群进行进化迭代,得到最优的调度方案,所述性能指标包括通信功耗及通信时间。
所述任务调度模块1108,根据所述最优的调度方案,将各个任务组调度到对应的处理核。
本实施例提供的各功能模块的具体操作方法可参照上述方法实施例中各对应步骤的详细描述,在此不再一一赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
应注意到:相似的标号和字母在上面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。