CN112084033A - 多核系统的任务分配方法、装置、计算机设备和存储介质 - Google Patents
多核系统的任务分配方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112084033A CN112084033A CN202010981377.5A CN202010981377A CN112084033A CN 112084033 A CN112084033 A CN 112084033A CN 202010981377 A CN202010981377 A CN 202010981377A CN 112084033 A CN112084033 A CN 112084033A
- Authority
- CN
- China
- Prior art keywords
- genetic
- chromosome
- chromosomes
- energy consumption
- task allocation
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 210000000349 chromosome Anatomy 0.000 claims abstract description 640
- 230000002068 genetic effect Effects 0.000 claims abstract description 562
- 238000005265 energy consumption Methods 0.000 claims abstract description 235
- 238000012216 screening Methods 0.000 claims abstract description 44
- 230000035772 mutation Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 15
- 238000005457 optimization Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 21
- 238000004422 calculation algorithm Methods 0.000 description 26
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 238000010845 search algorithm Methods 0.000 description 6
- 238000000137 annealing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 108090000623 proteins and genes Proteins 0.000 description 5
- 238000002922 simulated annealing Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010353 genetic engineering Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 101000802640 Homo sapiens Lactosylceramide 4-alpha-galactosyltransferase Proteins 0.000 description 1
- 102100035838 Lactosylceramide 4-alpha-galactosyltransferase Human genes 0.000 description 1
- 206010036590 Premature baby Diseases 0.000 description 1
- 230000002759 chromosomal effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000004043 dyeing Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008303 genetic mechanism Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000010186 staining Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Physics & Mathematics (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Physiology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Genetics & Genomics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种多核系统的任务分配方法,包括:对多条遗传染色体执行遗传操作,生成新的遗传染色体,获取新的遗传染色体对应的新的任务分配方案,并根据新的任务分配方案,从新的遗传染色体以及种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体,并对当前种群中的多条遗传染色体进行优化,根据优化后的多条遗传染色体确定出系统能耗值满足预设能耗条件的目标任务分配方案,将多个待分配任务分配至多核系统中对应的处理器,实现了通过遗传操作产生新的任务分配方案时,及时通过系统能耗值对新生的遗传染色体和原有的遗传染色体进行评估,避免在遗传操作过程中丢失优秀个体。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种多核系统的任务分配方法、装置、计算机设备和存储介质。
背景技术
随着系统数据处理水平的提高,在系统中的处理器数量不断增加的同时,处理器之间的任务调度也越来越复杂。在异构多核系统中,系统低功耗主要依赖于任务分配方式,合理的任务分配方式对降低多核系统的整体能耗至关重要。
在采用传统遗传算法进行任务分配时,可以通过多种的遗传操作产生多种遗传染色体,从而获取多种任务分配方式。然而,现有的遗传染色体评价方式不合理,导致在执行遗传操作的过程中,容易丢失优秀的遗传染色体,难以获取节能效果优异的任务分配方案。
发明内容
基于此,有必要针对上述技术问题,提供一种多核系统的任务分配方法、装置、计算机设备和存储介质。
一种多核系统的任务分配方法,所述方法包括:
获取多核系统对应的多个待分配任务,将所述多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体;
对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体;
根据所述目标遗传染色体,对当前种群中的多条遗传染色体进行优化,并根据优化后的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案;
根据所述目标任务分配方案,将所述多个待分配任务分配至多核系统中对应的处理器。
可选地,所述对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体,包括:
对多条遗传染色体执行交叉操作,生成交叉遗传染色体,获取交叉遗传染色体对应的任务分配方案;
确定所述交叉遗传染色体对应的任务分配方案的第一系统能耗值,以及用于生成交叉遗传染色体的多条遗传染色体对应的任务分配方案的第二系统能耗值;
根据所述第一系统能耗值和所述第二系统能耗值,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
可选地,所述根据所述第一系统能耗值和所述第二系统能耗值,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体,包括:
当所述第一系统能耗值小于所述第二系统能耗值时,确定所述交叉遗传染色体为目标遗传染色体;
当所述第一系统能耗值大于所述第二系统能耗值时,获取所述第一系统能耗值与所述第二系统能耗值的能耗值差值,并确定所述能耗值差值对应的染色体接受概率;
根据所述染色体接受概率,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
可选地,所述根据所述染色体接受概率,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体,包括:
获取参考概率,若所述染色体接受概率小于所述参考概率,确定所述用于生成交叉遗传染色体的多条遗传染色体为目标遗传染色体;
若所述染色体接受概率大于所述参考概率,确定所述交叉遗传染色体为目标遗传染色体。
可选地,所述对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体,还包括:
将多条遗传染色体添加至禁忌搜索队列中,对禁忌搜索队列中的遗传染色体执行变异操作,生成新的变异遗传染色体,并获取所述变异遗传染色体对应的任务分配方案;所述变异遗传染色体对应的任务分配方案,用于生成变异遗传染色体的遗传染色体其任务分配方案的邻域;
确定所述变异遗传染色体对应的任务分配方案的第三系统能耗值,以及用于生成变异遗传染色体的遗传染色体对应的任务分配方案的第四系统能耗值;
根据所述第三系统能耗值和所述第四系统能耗值,从变异遗传染色体和用于生成变异遗传染色体的遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
可选地,所述对所述多条遗传染色体执行遗传操作,包括:
获取每条遗传染色体对应的任务分配方案的系统能耗值,并确定多个系统能耗值对应的能耗值总和;
根据每条遗传染色体对应的系统能耗值与所述能耗值总和,确定每组任务分配方案的被选取概率;
从多条遗传染色体中,确定出对应任务分配方案的被选取概率小于概率阈值的遗传染色体,执行遗传操作。
可选地,所述获取多核系统对应的多个待分配任务,将所述多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体,包括:
获取多核系统对应的多个待分配任务,并确定每个待分配任务对应的多个候选处理器,生成多个待分配任务对应的多组任务分配方案;
针对每组任务分配方案,将所述任务分配方案编码为与实数数组对应的遗传染色体;其中,所述实数数组的长度为待分配任务的任务数量,所述实数数组中的每个实数对应于执行所述待分配任务的处理器。
一种多核系统的任务分配装置,所述装置包括:
待分配任务获取模块,用于获取多核系统对应的多个待分配任务,将所述多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体;
目标遗传染色体确定模块,用于对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体;
种群优化模块,用于根据所述目标遗传染色体,对当前种群中的多条遗传染色体进行优化,并根据优化后的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案;
任务分配模块,用于根据所述目标任务分配方案,将所述多个待分配任务分配至多核系统中对应的处理器。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的多核系统的任务分配方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的多核系统的任务分配方法的步骤。
上述一种多核系统的任务分配方法、装置、计算机设备和存储介质,通过获取多核系统对应的多个待分配任务,将多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体,对多条遗传染色体执行遗传操作,生成新的遗传染色体,获取新的遗传染色体对应的新的任务分配方案,并根据新的任务分配方案,从新的遗传染色体以及种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体,根据目标遗传染色体,对当前种群中的多条遗传染色体进行优化,并根据优化后的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案,根据目标任务分配方案,将多个待分配任务分配至多核系统中对应的处理器,实现了通过遗传操作产生新的任务分配方案时,及时通过系统能耗值对新生的遗传染色体和原有的遗传染色体进行评估,避免在遗传操作过程中丢失优秀个体,有效提高了获取节能效果优异的任务分配方案的几率。
附图说明
图1为一个实施例中一种多核系统的任务分配方法的流程示意图;
图2为一个实施例中一种多核系统中任务分配的遗传染色体实例的示意图;
图3为一个实施例中一种遗传染色体交叉操作的流程示意图;
图4为一个实施例中一种基于模拟退火算法的遗传染色体交叉操的流程图;
图5为一个实施例中一种遗传染色体变异操作的流程示意图;
图6为一个实施例中一种基于禁忌搜索算法的遗传染色体交叉操的流程图;
图7为一个实施例中另一种多核系统的任务分配方法的流程示意图;
图8为一个实施例中一种多核系统的任务分配装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种多核系统的任务分配方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。在本实施例中,该方法包括可以包括如下步骤:
步骤101,获取多核系统对应的多个待分配任务,将所述多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体。
作为一示例,多核系统可以是多核处理器,即终端中的一个处理器具有多个处理核心,例如双核处理器、四核处理器,也可以是多个单核处理器组成的系统。
在实际应用中,终端在进行数据处理时,可以将数据处理的过程拆分为多个待分配任务,多个待分配任务需要分配到多核系统中的各个处理核心中进行处理。在获取多核系统对应的多个待分配任务后,可以采取多种分配方式生成不同的任务分配方案,在每组任务分配方案中,指示每个待分配方案对应的处理核心,该处理核心可用于处理其对应的待分配任务。
在确定多组任务分配方案后,针对每组任务分配方案,可以对任务分配方案进行编码,生成对应的遗传染色体,进而可以获取与多组任务分配方案对应的多条遗传染色体。其中,编码是将任务分配方案中处理核心对应的标识转换成由基因组成的遗传染色体个体的过程。在具体实现中,编码方式可以是以下的任一种:实数编码、二进制编码、符号编码、多参数级联编码。
步骤102,对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体。
作为一示例,系统能耗值可以是多核系统中多个处理核心所对应的能耗值,系统能耗值可以是多个处理核心的平均能耗值,例如,可以根据系统所有多个处理核心在完成对应的待分配任务时对应的总能耗值,以及多核系统中处理核心的数量计算得到;或者,系统能耗值可以是多个处理核心在完成对应的待分配任务时对应的总能耗值。
在具体实现中,任务分配方案的系统能耗值也可以称为遗传染色体的适应度,在本申请中,适应度与遗传染色体的等级成负相关,适应度越小,遗传染色体的等级越高,即遗传染色体越优良,其对应的任务分配方案可以带来更明显的能耗节省效果。
具体的,本申请中的多核系统的任务分配方法,可以基于遗传算法对多个待分配任务进行分配。遗传算法(Genetic Algorithm,GA)是根据大自然中生物体进化规律而设计提出的,是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。该算法通过数学的方式,将问题的求解过程转换成类似生物进化中的染色体基因的交叉、变异等过程。
在得到多条遗传染色体后,可以对多条遗传染色体执行遗传操作,生成新的遗传染色体,并获取新的遗传染色体对应的新的任务分配方案。在得到新的遗传染色体后,根据新的遗传染色体和种群中原有的多条遗传染色体所对应的任务分配方案的系统能耗值,确定出系统能耗值满足染色体筛选条件的任务分配方案以及该任务分配方案对应的目标遗传染色体。
步骤103,根据所述目标遗传染色体,对当前种群中的多条遗传染色体进行优化,并根据优化后的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案。
在具体实现中,可以根据目标遗传染色体对当前种群中的多条遗传染色体进行优化,得到新一代种群,并根据新一代种群中的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案。具体而言,可以获取新一代种群中多条遗传染色体对应任务分配方案的系统能耗值,并对多组任务分配方案的系统能耗值进行排序,并将排序在预设范围内的任务分配方案确定为能耗值满足预设能耗条件的目标任务分配方案。
步骤104,根据所述目标任务分配方案,将所述多个待分配任务分配至多核系统中对应的处理器。
在确定目标任务分配方案后,可以根据目标任务分配方案中各个待分配任务的分配方式,将多个待分配任务分配至对应的处理器中。
在本实施例中,通过获取多核系统对应的多个待分配任务,将多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体,对多条遗传染色体执行遗传操作,生成新的遗传染色体,获取新的遗传染色体对应的新的任务分配方案,并根据新的任务分配方案,从新的遗传染色体以及种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体,根据目标遗传染色体,对当前种群中的多条遗传染色体进行优化,并根据优化后的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案,根据目标任务分配方案,将多个待分配任务分配至多核系统中对应的处理器,实现了通过遗传操作产生新的任务分配方案时,及时通过系统能耗值对新生的遗传染色体和原有的遗传染色体进行评估,避免在遗传操作过程中丢失优秀个体,有效提高了获取节能效果优异的任务分配方案的几率。
在一个实施例中,所述获取多核系统对应的多个待分配任务,将所述多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体,可以包括如下步骤:
步骤1011,获取多核系统对应的多个待分配任务,并确定每个待分配任务对应的多个候选处理器,生成多个待分配任务对应的多组任务分配方案。
在实际应用中,在获取多核系统对应的多个待分配任务后,可以确定每个待分配任务对应的多个候选处理器,并根据每个待分配任务对应的多个候选处理器,生成多组任务分配方案。例如,当多核系统中包括两个处理器core0和core1时,获取到当前的待分配任务a、待分配任务b和待分配任务c,则针对待分配任务a、b、c,候选处理器可以是core0和core1,通过对多个待分配任务的候选处理器进行组合,可以生成多组任务分配方案,例如,在一组任务分配方案中,待分配任务a对应的处理器为core0,待分配任务b对应的处理器为core1,待分配任务c对应的处理器为core1。
在另一个实施例中,当多个待分配任务之间存在依赖关系时,在确定每个待分配任务对应的多个候选处理器,并生成多个待分配任务对应的多组任务分配方案的步骤中,可以针对待分配任务随机生成DAG(Directed Acyclic Graph,有向无环图)任务图的测试集,并确定DAG任务图对应任务图参数,进而可以根据DAG任务图和对应的任务图参数生成多条遗传染色体,生成初始化种群。其中,DAG任务图的测试集是包括多个DAG任务图的集合,每个DAG任务图是基于多个待分配任务之间的依赖关系随机生成的。任务图参数可用于描述DAG任务图中各个待分配任务的处理顺序。
步骤1012,针对每组任务分配方案,将所述任务分配方案编码为与实数数组对应的遗传染色体;其中,所述实数数组的长度为待分配任务的任务数量,所述实数数组中的每个实数对应于执行所述待分配任务的处理器。
在确定多组任务分配方案后,针对每组任务分配方案,可以采用实数编码的方式,将任务分配方案编码为与实数数组对应的遗传染色体,其中,遗传染色体的长度为实数数组的长度,实数数组的长度为待分配任务的任务数量,多个待分配任务按照任务处理顺序,依次与实数数组中的每个实数对应,实数数组中的每个实数对应于执行待分配任务的处理器。
例如,系统由n个异构处理器,m个任务组成。染色体Y编码为m个任务的基因组合,Y={m0,m1,…,mn},如果任务mi分配到处理器nj上执行,则染色体中任务mi所对应的基因即为nj,其中染色体长度等于任务个数m,基因可以取到的值为0~n范围内的实数。
如图2所示,终端具有两个异构处理器core0和core1,在获取待分配任务X1、X2、X3、X4和X5后,可以生成DAG任务图,并根据DAG任务图将五个待分配任务分配到对应的处理器,其中,待分配任务X1、X3和X4被分配到处理器core0,待分配任务X2和X5被分配到core1。在确定任务分配方案后,可以按照多个待分配任务的排列顺序,进行编码得到实数数组“01001”。
在本实施例中,通过实数编码的形式,针对每组任务分配方案,将任务分配方案编码为与实数数组对应的遗传染色体,可以直接采用解空间的形式确定各个待分配任务的分配方案,意义明确,并且可以大大缩短字符串长度,在确定多核系统中的任务分配方式时,无需频繁地编码解码,有效改善遗传算法的计算复杂度,提高了算法效率。
在一个实施例中,所述对所述多条遗传染色体执行遗传操作,可以包括如下步骤:
获取每条遗传染色体对应的任务分配方案的系统能耗值,并确定多个系统能耗值对应的能耗值总和;根据每条遗传染色体对应的系统能耗值与所述能耗值总和,确定每组任务分配方案的被选取概率;从多条遗传染色体中,确定出对应任务分配方案的被选取概率小于概率阈值的遗传染色体,执行遗传操作。
在实际应用中,可以获取每条遗传染色体对应任务分配方案的系统能耗值,并确定多个系统能耗值,进而根据每条遗传染色体对应的系统能耗值与所述能耗值总和,确定每组任务分配方案的被选取概率。
具体的,可以获取每个待分配任务对应的能耗参数,该能耗参数反映处理器在处理该待分配任务时的能耗。根据各个待分配任务对应的能耗参数,确定每个任务分配方案的系统能耗值,对多个系统能耗值累加求和,得到能耗值总和,并计算各个系统能耗值在能耗值总和中所占的比重,该比重为任务分配方案的被选取概率。
在确定多个被选取概率后,可以获取概率阈值,并确定出被选取概率小于概率阈值遗传染色体,对其执行遗传操作,其中概率阈值可以是随机生成的一个阈值。具体而言,由于系统能耗值可以反映遗传染色体的优良程度,系统能耗值越小代表着对应的遗传染色体越优良,因此各遗传染色体的能耗值在能耗值总和中所占的比重越小也代表着该染色体基因遗传染色体越优良。概率阈值是评判标准,用于判断是否保留该遗传染色体,当被选取概率小于概率阈值时,确定遗传染色体在当前种群中的多条遗传染色体中属于高等级的染色体,可以保留该遗传染色体并传至下一代种群;当被选取概率大于概率阈值时,确定遗传染色体在当前种群中的多条遗传染色体中属于低等级的染色体,将该遗传染色体从当前种群中淘汰。
在本实施例中,遗传染色体被选中执行遗传操作从而遗传到下一代种群的概率,与遗传染色体对应的系统能耗值相关,通过上述轮盘赌的选择方式对当前种群中的染色进行选择,能对当前种群中的多条遗传染色体进行优胜劣汰,将系统能耗值低的任务分配方式保留至下一代种群中。
在一个实施例中,如图3所示,所述对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体,包括如下步骤:
步骤201,对多条遗传染色体执行交叉操作,生成交叉遗传染色体,获取交叉遗传染色体对应的任务分配方案。
在实际应用中,遗传操作可以包括交叉操作,在得到多条遗传染色体后,可以对多条遗传染色体执行交叉操作,得到交叉后的、新的遗传染色体,即交叉遗传染色体,并获取交叉遗传染色体对应的任务分配方案。
步骤202,确定所述交叉遗传染色体对应的任务分配方案的第一系统能耗值,以及用于生成交叉遗传染色体的多条遗传染色体对应的任务分配方案的第二系统能耗值。
在实际应用中,用于生成交叉遗传染色体的遗传染色体可以称为父代染色体,通过父代染色体交叉后生成的交叉遗传染色体也可以称为子代染色体。在确定交叉遗传染色体对应的任务分配方案后,可以确定该任务分配方案的第一系统能耗值,以及,用于生成交叉遗传染色体的多条遗传染色体对应的任务分配方案的第二系统能耗值,即确定父代染色体和子代染色体各自对应的系统能耗值。
步骤203,根据所述第一系统能耗值和所述第二系统能耗值,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
具体的,可以对比第一系统能耗值和第二系统能耗值,并根据对比结果,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
在本实施例中,在使用遗传算法确定任务分配方案时,能够通过交叉操作随机地修改任务分配方案,增加任务分配方案的多样性,同时,可以根据第一系统能耗值和第二系统能耗值,确定出系统能耗值满足染色体筛选条件的目标遗传染色体,确定保留父代染色体或接受新生成的子代染色体。
在一个实施例中,所述根据所述第一系统能耗值和所述第二系统能耗值,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体,包括如下步骤:
当所述第一系统能耗值小于所述第二系统能耗值时,确定所述交叉遗传染色体为目标遗传染色体;当所述第一系统能耗值大于所述第二系统能耗值时,获取所述第一系统能耗值与所述第二系统能耗值的能耗值差值,并确定所述能耗值差值对应的染色体接受概率;根据所述染色体接受概率,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
具体的,当第一系统能耗值小于第二系统能耗值时,确定交叉遗传染色体对应的任务分配方案更优,可以将交叉遗传染色体确定为目标遗传染色体。
当第一系统能耗值大于第二系统能耗值时,用于生成交叉遗传染色体的遗传染色体其对应的任务分配方案,优于交叉遗传染色体对应的任务分配方案,即父代染色体对应的任务分配方案更优。
然而,由于父代染色体对应的任务分配方案可能是局部最优解而非全局最优解,为了摆脱局部最优解而获得全局最优解,在本实施例中,可以获取第一系统能耗值和第二系统能耗值的能耗值差值,并确定能耗值差值对应的染色体接受概率,进而根据染色体接受概率,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
在本实施例中,当第一系统能耗值大于第二系统能耗值时,可以根据染色体接受概率,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体,避免在遗传算法的执行过程中直接将系统能耗值更高的任务分配方案直接淘汰而陷入局部最优解,具有一定概率摆脱局部最优解。
在一个实施例中,所述根据所述染色体接受概率,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体,包括如下步骤:
获取参考概率,若所述染色体接受概率小于所述参考概率,确定所述用于生成交叉遗传染色体的多条遗传染色体为目标遗传染色体;若所述染色体接受概率大于所述参考概率,确定所述交叉遗传染色体为目标遗传染色体。
在实际应用中,遗传算法在执行过程中,通过多种遗传操作,可以在全局范围内搜索最优解,但由于遗传算法在遗传过程中总是将最优的遗传染色体保留,所以在局部最优解附近时就容易收敛于此,陷入局部最优解。基于此,可以按照一定的概率接受系统能耗值更高的交叉遗传染色体。
在确定染色体接受概率后,可以获取参考概率,该参考概率可以是在(0,1)范围内随机生成的概率,染色体筛选条件为染色体接受概率大于参考概率,或者,在多条染色体中系统能耗值最低的染色体。具体而言,若染色体接受概率小于参考概率,确定用于生成交叉遗传染色体的多条遗传染色体为目标遗传染色体,若染色体接受概率大于参考概率,则将交叉遗传染色体确定为目标染色体。
为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本实施例加以示例性说明,但应当理解的是,本实施例并不限于此。
具体的,如图4所示,在遗传染色体的交叉过程中,可以基于模拟退火算法的机制进行交叉、选择。在对遗传染色体进行交叉前,可以初始化模拟退火算法的退火温度,确定当前的温度下降次数,并从当前种群中任意选取两条遗传染色体F1和F2,F1和F2也称为父代染色体。
在获取遗传染色体F1和F2后,可以判断当前的温度下降次数是否满足预设下降次数阈值K,若是,可以结束交叉操作,若否,可以对遗传染色体F1和F2进行交叉操作,生成交叉遗传染色体S1和S2,S1和S2也称为子代染色体。计算F1、F2、S1和S2对应的适应度(即系统能耗值),并判断子代染色体的适应度是否大于父代染色体是否小于父代染色体的适应度,若是,子代染色体对应的任务分配方案能耗更小,则将子代染色体作为目标遗传染色体,替代其父代染色体,以对当前种群中的多条遗传染色体进行优化;若否,确定子代染色体对应的任务分配方案不如父代染色体对应的任务分配方案,进一步确定子代染色体与父代染色体适应度的差值(即本申请中的能耗值差值),例如,计算S1和F1适应度的差值,并基于该差值确定染色体接受概率。在确定染色体接受概率时,可以根据Metropolis准则确定,具体的,染色体接受概率prob可以按照如下公式计算:
prob=e-Δf/(kT)
其中,T为当前的退火温度,Δf为子代染色体与父代染色体适应度的差值,k为常数。
在确定染色体接受概率后,可以随机生成参考概率,并判断染色体接受概率是否大于参考概率,当染色体接受概率大于参考概率时,将子代染色体确定为目标遗传染色体,当染色体接受概率小于参考概率时,将父代染色体确定为目标遗传染色体。
在确定目标遗传染色体后,可以更新退温函数(即退火温度函数),下降退火温度,并再次判断温度下降次数是否满足下降次数阈值K,若否,可以继续对父代染色体F1和F2进行交叉操作,生成新的子代染色体S1、S2,并重复上述步骤。
在一个实施例中,如图5所示,所述对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体,还可以包括如下步骤:
步骤301,将多条遗传染色体添加至禁忌搜索队列中,对禁忌搜索队列中的遗传染色体执行变异操作,生成新的变异遗传染色体,并获取所述变异遗传染色体对应的任务分配方案;所述变异遗传染色体对应的任务分配方案,用于生成变异遗传染色体的遗传染色体其任务分配方案的邻域。
在实际应用中,可以通过禁忌搜索算法的机制对遗传染色体进行变异操作。具体的,可以将当前种群中全部的遗传染色体添加到禁忌搜索队列中,当然,也可以从当前种群中选取其中的若干条遗传染色体添加到禁忌搜索队列中。
将遗传染色体添加到禁忌搜索队列后,可以对禁忌表中的内容进行初始化,清空禁忌表中的内容,并依次选取禁忌搜索队列中的遗传染色体执行变异操作,生成新的遗传染色体,即变异遗传染色体,并获取该变异遗传染色体对应的任务分配方案。其中,禁忌表是用于记录筛选出的最优任务分配方案;生成的变异遗传染色体所对应的任务分配方案,是其对应的被执行变异操作的遗传染色体(即原有的遗传染色体)任务分配方案的邻域。
步骤302,确定所述变异遗传染色体对应的任务分配方案的第三系统能耗值,以及用于生成变异遗传染色体的遗传染色体对应的任务分配方案的第四系统能耗值。
具体的,可以确定变异遗传染色体对应的任务分配方案的第三系统能耗值,以及原有的用于生成变异遗传染色体的遗传染色体其任务分配方案的第四系统能耗值。
步骤303,根据所述第三系统能耗值和所述第四系统能耗值,从变异遗传染色体和用于生成变异遗传染色体的遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
具体的,在使用禁忌搜索算法对遗传染色体执行变异操作时,当第三系统能耗值小于第四系统能耗值时,确定变异遗传染色体对应的任务分配方案具有更低的系统能耗,可以将变异遗传染色体确定为目标遗传染色体,并将用于生成变异遗传染色体的添加到禁忌表中,从而避免在下次搜素过程中重复对已评估过的遗传染色体再次进行评估;当第三系统能耗值大于第四系统能耗值时,确定用于生成变异遗传染色体的遗传染色体,为目标遗传染色体,并将变异遗传染色体添加到禁忌表中。
在对禁忌搜索队列中选取的遗传染色体进行一次变异操作后,可以判断对该遗传染色体的变异操作次数是否满足预设次数阈值,若否,则针对该遗传染色体,重复步骤301-303;若是,可以判断是否对禁忌搜索队列中的所有遗传染色体进行变异操作,若已对禁忌搜索队列中的所有遗传染色体执行变异操作,则可以结束变异操作。
在实际应用中,进行变异操作的遗传染色体,可以是经过交叉操作处理并筛选后得到的遗传染色体,即通过步骤201-203得到的目标遗传染色体,本申请中,可以对遗传染色体进行交叉操作并筛选后,进一步基于禁忌搜索算法对筛选得到的目标遗传染色体进行变异操作,得到变异后的目标遗传染色体,通过在进行交叉操作以及变异操作后,及时通过系统能耗值直接对多条遗传染色体进行优胜劣汰,能够有效避免在一次完成所有遗传操作(例如一次完成交叉操作和变异操作)后,才通过系统能耗值对各个任务分配方案进行评估,导致交叉过程或变异过程中产生的低能耗的任务分配方案丢失。
同时,在遗传算法的基础上,结合模拟退火算法和禁忌搜索算法,能够改进传统遗传算法局部搜索能力差,易陷入局部最优解而产生早熟的缺陷。其中,基于遗传算法,结合模拟退火算法、禁忌搜索算法的混合算法称为MTSG(Mixed TS and SA and GA)算法。三种算法取长补短,有效提高寻找低系统能耗值的任务分配方案效率。
为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本实施例加以示例性说明,但应当理解的是,本实施例并不限于此。
具体的,如图6所示,可以从当前种群中选择一组或多组染色体(即本申请中的遗传染色体)加入到禁忌搜索栈(也即禁忌搜索队列)中,并从禁忌搜索栈中选出一染色体A1,并确定最优染色体为A1,对禁忌表进行初始化,清楚禁忌表中的内容。
对染色体A1进行变异操作,产生N个变异遗传染色体a1,a2,a3,...,an,形成一个以A1为基础的邻域。通过适应度函数计算染色体A1和邻域中的染色体各自对应的适应度,并根据特赦准则判断是否采用变异遗传染色体替代染色体A1作为最优染色体。具体的,当染色体A1的适应度小于或等于变异染色体的适应度时,最优染色体不变,并将多个变异遗传染色体添加到禁忌表中;当染色体A1的适应度大于变异染色体的适应度时,将适应度最小的变异染色体确定为最优染色体,并将染色体A1添加到禁忌表中。
判断针对染色体A1的禁忌搜索次数是否满足预设次数阈值,若否,返回至对染色体A1进行变异操作的步骤;若是,判断禁忌搜索栈中的所有染色体是否都完成了禁忌搜索操作,若否,返回至从禁忌搜索栈中选出一染色体的步骤,若是,则输出结果,确定当前的最优染色体并将其确定为目标遗传染色体。
在本实施例中,基于禁忌搜索算法对遗传染色体进行变异操作,能够增加当前种群中的多样性;并且,可以在进行变异操作时,通过系统能耗值直接对多条遗传染色体进行优胜劣汰,避免在完成所有遗传操作后,才通过系统能耗值对各个任务分配方案进行评估,导致变异过程中产生的低能耗的任务分配方案丢失。
在一个实施例中,在确定目标遗传染色体后,在根据所述目标遗传染色体,对当前种群中的多条遗传染色体进行优化时,可以是采用目标遗传染色体替代当前种群中对应的遗传染色体,或者,可以是在保留原有的多条遗传染色体的基础上,将目标遗传染色体添加到当前种群中。在实际应用中,在对当前种群的遗传染色体进行优化后,可以判断当前优化次数是否等于优化次数阈值,其中,对当前种群中的多条遗传染色体执行选择、交叉和变异操作后,确定为完成一次优化。当优化次数小于优化次数阈值时,可以重复步骤101-103;当优化次数等于优化次数阈值时,可以执行根据优化后的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案的步骤。
为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本实施例加以示例性说明,但应当理解的是,本实施例并不限于此。
如图7所示,可以获取多个待分配任务,针对多个待分配任务随机生成包括多个DAG任务图的测试集,确定DAG任务图对应的DAG任务图参数后,根据DAG任务图参数随机生成包含多条遗传染色体的初始化种群,并计算当前种群中各条遗传染色体的适应度。
进一步地,可以判断是否满足终止条件,该终止条件为种群进化的代数是否达到预设阈值,若是,可以从当前种群中确定最优解,例如将适应度最小的遗传染色体作为最优解;若否,则可以对当前种群中的遗传染色体执行遗传操作,其中包括对遗传染色体进行选择、交叉和变异等多种遗传操作,在对进行遗传操作的染色体的适应度进行计算与评估后,生成新一代种群,并返回至计算当前种群中各条遗传染色体的适应度的步骤。针对每代种群,通过进行选择、交叉和变异操作,可以淘汰当前种群中相对较劣的遗传染色体并保留新产生的遗传染色体中相对较优的个体,产生新一代种群。通过三种算法相互配合,使得在进行多核系统的任务分配时,寻找低能耗任务分配方案的效率大大提升,避免了使用单种启发式算法进行任务分配的缺陷。
在实际应用中,本申请的任务分配方法可描述如下:
(4)生成[0,1]上均匀分布的随机数ρ,以下式进行新种群选择:
(5)直至符合停止准则,否则重复2-4。
并证明本申请中改进后的算法能以概率“1”收敛于最优解:
P(Y(k+1)=j|Y(0)=i0,Y(1)=i1,...,Y(k-1)=ik-1,Y(n)=i)=P(Y(k+1)=j|Y(k)=i)
记Pk(i,j)=P(Y(k+1)=j|Y(k)=i),P(k)=(Pk(i,j);i,j∈SN)
因为P(∞)为随机矩阵,所以其有唯一不可约非周期的正常返类W*。SN\W*为非常返类。
由上述证明过程可知,本申请中改进后的算法能以概率“1”收敛于最优解。
应该理解的是,虽然图1-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-7中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图8所示,提供了一种多核系统的任务分配装置,所述装置包括:
待分配任务获取模块801,用于获取多核系统对应的多个待分配任务,将所述多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体;
目标遗传染色体确定模块802,用于对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体;
种群优化模块803,用于根据所述目标遗传染色体,对当前种群中的多条遗传染色体进行优化,并根据优化后的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案;
任务分配模块804,用于根据所述目标任务分配方案,将所述多个待分配任务分配至多核系统中对应的处理器。
在一个实施例中,所述目标遗传染色体确定模块,包括:
交叉操作子模块,用于对多条遗传染色体执行交叉操作,生成交叉遗传染色体,获取交叉遗传染色体对应的任务分配方案;
第一能耗获取子模块,用于确定所述交叉遗传染色体对应的任务分配方案的第一系统能耗值,以及用于生成交叉遗传染色体的多条遗传染色体对应的任务分配方案的第二系统能耗值;
第一目标遗传染色体筛选子模块,用于根据所述第一系统能耗值和所述第二系统能耗值,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
在一个实施例中,所述第一目标遗传染色体筛选子模块,包括:
第一确定单元,用于当所述第一系统能耗值小于所述第二系统能耗值时,确定所述交叉遗传染色体为目标遗传染色体;
接受概率计算单元,用于当所述第一系统能耗值大于所述第二系统能耗值时,获取所述第一系统能耗值与所述第二系统能耗值的能耗值差值,并确定所述能耗值差值对应的染色体接受概率;
第二确定单元,用于根据所述染色体接受概率,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
在一个实施例中,所述第二确定单元,包括:
参考概率获取子单元,用于获取参考概率,若所述染色体接受概率小于所述参考概率,确定所述用于生成交叉遗传染色体的多条遗传染色体为目标遗传染色体;
交叉遗传染色确定子单元,用于若所述染色体接受概率大于所述参考概率,确定所述交叉遗传染色体为目标遗传染色体。
在一个实施例中,所述目标遗传染色体确定模块,还包括:
变异遗传染色体生成子模块,用于将多条遗传染色体添加至禁忌搜索队列中,对禁忌搜索队列中的遗传染色体执行变异操作,生成新的变异遗传染色体,并获取所述变异遗传染色体对应的任务分配方案;所述变异遗传染色体对应的任务分配方案,用于生成变异遗传染色体的遗传染色体其任务分配方案的邻域;
第三系统能耗值确定子模块,用于确定所述变异遗传染色体对应的任务分配方案的第三系统能耗值,以及用于生成变异遗传染色体的遗传染色体对应的任务分配方案的第四系统能耗值;
能耗值比较子模块,用于根据所述第三系统能耗值和所述第四系统能耗值,从变异遗传染色体和用于生成变异遗传染色体的遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
在一个实施例中,所述目标遗传染色体确定模块,还包括:
系统能耗值获取子模块,用于获取每条遗传染色体对应的任务分配方案的系统能耗值,并确定多个系统能耗值对应的能耗值总和;
被选取概率确定子模块,用于根据每条遗传染色体对应的系统能耗值与所述能耗值总和,确定每组任务分配方案的被选取概率;
概率比较子模块,用于从多条遗传染色体中,确定出对应任务分配方案的被选取概率小于概率阈值的遗传染色体,执行遗传操作。
在一个实施例中,所述待分配任务获取模块,包括:
任务分配方案生成子模块,用于获取多核系统对应的多个待分配任务,并确定每个待分配任务对应的多个候选处理器,生成多个待分配任务对应的多组任务分配方案;
编码子模块,用于针对每组任务分配方案,将所述任务分配方案编码为与实数数组对应的遗传染色体;其中,所述实数数组的长度为待分配任务的任务数量,所述实数数组中的每个实数对应于执行所述待分配任务的处理器。
关于一种多核系统的任务分配装置的具体限定可以参见上文中对于一种多核系统的任务分配方法的限定,在此不再赘述。上述一种多核系统的任务分配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种多核系统的任务分配方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取多核系统对应的多个待分配任务,将所述多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体;
对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体;
根据所述目标遗传染色体,对当前种群中的多条遗传染色体进行优化,并根据优化后的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案;
根据所述目标任务分配方案,将所述多个待分配任务分配至多核系统中对应的处理器。
在一个实施例中,处理器执行计算机程序时还实现上述其他实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取多核系统对应的多个待分配任务,将所述多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体;
对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体;
根据所述目标遗传染色体,对当前种群中的多条遗传染色体进行优化,并根据优化后的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案;
根据所述目标任务分配方案,将所述多个待分配任务分配至多核系统中对应的处理器。
在一个实施例中,计算机程序被处理器执行时还实现上述其他实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种多核系统的任务分配方法,其特征在于,所述方法包括:
获取多核系统对应的多个待分配任务,将所述多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体;
对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体;
根据所述目标遗传染色体,对当前种群中的多条遗传染色体进行优化,并根据优化后的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案;
根据所述目标任务分配方案,将所述多个待分配任务分配至多核系统中对应的处理器。
2.根据权利要求1所述的方法,其特征在于,所述对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体,包括:
对多条遗传染色体执行交叉操作,生成交叉遗传染色体,获取交叉遗传染色体对应的任务分配方案;
确定所述交叉遗传染色体对应的任务分配方案的第一系统能耗值,以及用于生成交叉遗传染色体的多条遗传染色体对应的任务分配方案的第二系统能耗值;
根据所述第一系统能耗值和所述第二系统能耗值,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一系统能耗值和所述第二系统能耗值,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体,包括:
当所述第一系统能耗值小于所述第二系统能耗值时,确定所述交叉遗传染色体为目标遗传染色体;
当所述第一系统能耗值大于所述第二系统能耗值时,获取所述第一系统能耗值与所述第二系统能耗值的能耗值差值,并确定所述能耗值差值对应的染色体接受概率;
根据所述染色体接受概率,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
4.根据权利要求3所述的方法,其特征在于,所述根据所述染色体接受概率,从交叉遗传染色体和用于生成交叉遗传染色体的多条遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体,包括:
获取参考概率,若所述染色体接受概率小于所述参考概率,确定所述用于生成交叉遗传染色体的多条遗传染色体为目标遗传染色体;
若所述染色体接受概率大于所述参考概率,确定所述交叉遗传染色体为目标遗传染色体。
5.根据权利要求1所述的方法,其特征在于,所述对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体,还包括:
将多条遗传染色体添加至禁忌搜索队列中,对禁忌搜索队列中的遗传染色体执行变异操作,生成新的变异遗传染色体,并获取所述变异遗传染色体对应的任务分配方案;所述变异遗传染色体对应的任务分配方案,用于生成变异遗传染色体的遗传染色体其任务分配方案的邻域;
确定所述变异遗传染色体对应的任务分配方案的第三系统能耗值,以及用于生成变异遗传染色体的遗传染色体对应的任务分配方案的第四系统能耗值;
根据所述第三系统能耗值和所述第四系统能耗值,从变异遗传染色体和用于生成变异遗传染色体的遗传染色体中,确定出系统能耗值满足染色体筛选条件的目标遗传染色体。
6.根据权利要求1所述的方法,其特征在于,所述对所述多条遗传染色体执行遗传操作,包括:
获取每条遗传染色体对应的任务分配方案的系统能耗值,并确定多个系统能耗值对应的能耗值总和;
根据每条遗传染色体对应的系统能耗值与所述能耗值总和,确定每组任务分配方案的被选取概率;
从多条遗传染色体中,确定出对应任务分配方案的被选取概率小于概率阈值的遗传染色体,执行遗传操作。
7.根据权利要求1所述的方法,其特征在于,所述获取多核系统对应的多个待分配任务,将所述多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体,包括:
获取多核系统对应的多个待分配任务,并确定每个待分配任务对应的多个候选处理器,生成多个待分配任务对应的多组任务分配方案;
针对每组任务分配方案,将所述任务分配方案编码为与实数数组对应的遗传染色体;其中,所述实数数组的长度为待分配任务的任务数量,所述实数数组中的每个实数对应于执行所述待分配任务的处理器。
8.一种多核系统的任务分配装置,其特征在于,所述装置包括:
待分配任务获取模块,用于获取多核系统对应的多个待分配任务,将所述多个待分配任务对应的多组任务分配方案作为种群中的多条遗传染色体;
目标遗传染色体确定模块,用于对所述多条遗传染色体执行遗传操作,生成新的遗传染色体,获取所述新的遗传染色体对应的新的任务分配方案,并根据所述新的任务分配方案,从所述新的遗传染色体以及所述种群中的多条遗传染色体中,确定出对应的任务分配方案的系统能耗值满足染色体筛选条件的目标遗传染色体;
种群优化模块,用于根据所述目标遗传染色体,对当前种群中的多条遗传染色体进行优化,并根据优化后的多条遗传染色体,确定出系统能耗值满足预设能耗条件的目标任务分配方案;
任务分配模块,用于根据所述目标任务分配方案,将所述多个待分配任务分配至多核系统中对应的处理器。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的多核系统的任务分配方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的多核系统的任务分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010981377.5A CN112084033A (zh) | 2020-09-17 | 2020-09-17 | 多核系统的任务分配方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010981377.5A CN112084033A (zh) | 2020-09-17 | 2020-09-17 | 多核系统的任务分配方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112084033A true CN112084033A (zh) | 2020-12-15 |
Family
ID=73737996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010981377.5A Pending CN112084033A (zh) | 2020-09-17 | 2020-09-17 | 多核系统的任务分配方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112084033A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826167A (zh) * | 2010-03-31 | 2010-09-08 | 北京航空航天大学 | 基于云控制器的自适应多核并行模拟退火遗传方法 |
CN102508708A (zh) * | 2011-11-30 | 2012-06-20 | 湖南大学 | 基于改进遗传算法的异构多核节能任务调度方法 |
CN102866912A (zh) * | 2012-10-16 | 2013-01-09 | 首都师范大学 | 一种单指令集异构多核系统静态任务调度方法 |
CN111061569A (zh) * | 2019-12-18 | 2020-04-24 | 北京工业大学 | 一种基于遗传算法的异构多核处理器任务分配与调度策略 |
US20200201677A1 (en) * | 2018-04-11 | 2020-06-25 | Shenzhen University | Cloud computing task allocation method and device, apparatus, and storage medium |
-
2020
- 2020-09-17 CN CN202010981377.5A patent/CN112084033A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826167A (zh) * | 2010-03-31 | 2010-09-08 | 北京航空航天大学 | 基于云控制器的自适应多核并行模拟退火遗传方法 |
CN102508708A (zh) * | 2011-11-30 | 2012-06-20 | 湖南大学 | 基于改进遗传算法的异构多核节能任务调度方法 |
CN102866912A (zh) * | 2012-10-16 | 2013-01-09 | 首都师范大学 | 一种单指令集异构多核系统静态任务调度方法 |
US20200201677A1 (en) * | 2018-04-11 | 2020-06-25 | Shenzhen University | Cloud computing task allocation method and device, apparatus, and storage medium |
CN111061569A (zh) * | 2019-12-18 | 2020-04-24 | 北京工业大学 | 一种基于遗传算法的异构多核处理器任务分配与调度策略 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | A binary differential search algorithm for the 0–1 multidimensional knapsack problem | |
CN108829501B (zh) | 一种基于改进遗传算法的批处理科学工作流任务调度算法 | |
CN114186749B (zh) | 基于强化学习及遗传算法的柔性车间调度方法及模型 | |
CN109522104B (zh) | 利用差分进化算法优化Iaas两目标任务调度的方法 | |
CN105843666B (zh) | 云计算中基于多目标优化的虚拟机放置方法 | |
US20150170052A1 (en) | Method of reducing resource fluctuations in resource leveling | |
CN110008023B (zh) | 基于遗传算法的云计算系统预算约束随机任务调度方法 | |
CN110471762A (zh) | 一种基于多目标优化的云资源分配方法及系统 | |
CN114968531B (zh) | 基于多适应度遗传优化的量子云混合任务调度方法及装置 | |
CN108427602B (zh) | 一种分布式计算任务的协同调度方法及装置 | |
CN111898750A (zh) | 基于进化算法的神经网络模型压缩方法及装置 | |
CN115981843A (zh) | 云边协同电力系统中任务调度方法、装置和计算机设备 | |
Chen et al. | Allocation of short-term jobs to unemployed citizens amid the global economic downturn using genetic algorithm | |
He | Optimization of edge delay sensitive task scheduling based on genetic algorithm | |
Bai et al. | A manufacturing task scheduling method based on public goods game on cloud manufacturing model | |
Awad et al. | A swarm intelligence-based approach for dynamic data replication in a cloud environment | |
Wang et al. | Decomposition-based multi-objective evolutionary algorithm for virtual machine and task joint scheduling of cloud computing in data space | |
CN117056089B (zh) | 一种服务动态分配系统及方法 | |
Chen et al. | A cost-efficient and reliable resource allocation model based on cellular automaton entropy for cloud project scheduling | |
CN117436627A (zh) | 任务分配方法、装置、终端设备及介质 | |
Yu | [Retracted] Research on Optimization Strategy of Task Scheduling Software Based on Genetic Algorithm in Cloud Computing Environment | |
CN112084033A (zh) | 多核系统的任务分配方法、装置、计算机设备和存储介质 | |
CN115421885A (zh) | 一种分布式多目标云任务的调度方法、装置及云服务系统 | |
CN114980216A (zh) | 基于移动边缘计算的依赖型任务卸载系统及方法 | |
Abidin | Greedy Approach for Optimizing 0-1 Knapsack Problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201215 |