WO2015100995A1 - 一种智能服务调度方法 - Google Patents
一种智能服务调度方法 Download PDFInfo
- Publication number
- WO2015100995A1 WO2015100995A1 PCT/CN2014/081424 CN2014081424W WO2015100995A1 WO 2015100995 A1 WO2015100995 A1 WO 2015100995A1 CN 2014081424 W CN2014081424 W CN 2014081424W WO 2015100995 A1 WO2015100995 A1 WO 2015100995A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- scheduling
- task
- subtasks
- time
- subtask
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000005265 energy consumption Methods 0.000 claims abstract description 18
- 238000004364 calculation method Methods 0.000 claims description 6
- 239000002245 particle Substances 0.000 abstract 1
- 238000004422 calculation algorithm Methods 0.000 description 24
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 230000002068 genetic effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
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/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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
Definitions
- the present invention relates to the field of operating systems, and in particular, to an intelligent service scheduling method. Background technique
- Task scheduling is a common operation in the operating system. For real-time operating systems, task scheduling directly affects its real-time performance.
- the method for implementing task scheduling is called a task scheduling algorithm.
- task scheduling algorithms There are many task scheduling algorithms in the prior art, but most of them are task-level scheduling.
- the task scheduling algorithms in the prior art are briefly introduced below.
- the Min-Min algorithm first predicts the minimum completion time of each task in the current task queue on each processor, and then assigns the task with the minimum completion time to the corresponding processor, and updates the ready time of the corresponding processor.
- the assigned task is removed from the task queue, and the remaining tasks are repeatedly allocated until the entire task queue is empty.
- the Min-Min algorithm is prone to load imbalance.
- Max-Min algorithm The difference between the Max-Min algorithm and the Min-Min algorithm is that after determining the earliest completion time of each task on each processor, the task with the largest earliest completion time is assigned to the corresponding processor and updated in time. The corresponding processor ready time is repeated for the remaining tasks.
- the Max-Min algorithm is better than the Min-Min algorithm in load balancing, but the Max-Min algorithm schedules the entire task as the minimum scheduling unit. When a task contains multiple small-granular subtasks, Max- The Min algorithm does not analyze the scheduling scheme of each subtask in detail.
- the Promethee algorithm is on the task side, based on user-defined criteria (such as task size, predictive execution time on the current processor, cost, etc.), or it can be a comprehensive performance obtained by weighting multiple indicators.
- the indicator prioritizes the tasks to be executed; on the processor side, monitors the machine status in real time, and once the machine is idle, assigns the task with the highest priority to the currently idle machine according to the prior task priority ordering. Go up.
- the simulation shows that proper adjustment of the weight between each performance index can make the algorithm achieve optimal performance in many aspects, but the Promethee algorithm also does not involve scheduling schemes for multiple small-granular subtasks within a task. Tasks are distributed as a whole.
- the genetic algorithm for parallel scheduling of time-series related subtasks first analyzes the timing requirements between subtasks and sorts the time depth values of all subtasks. Then several kinds of "subtask-node” allocation matrices are randomly generated, and each kind of "subtask-node” matrix is an allocation scheme.
- the idea of the algorithm is to randomly generate several kinds of allocators. The case constitutes the initial population, and the individual in the population is mutated and screened to improve it from generation to generation, thus obtaining a new, shorter completion time plan. After many generations of genetic algorithms, a stable, superior solution can be obtained. However, the complexity of the genetic algorithm is high, which causes a large computational delay in the case of a large number of tasks in the network.
- the EDTS algorithm is a method for optimal scheduling of N-step subtasks within a task.
- the algorithm first predicts the time and energy consumption of each subtask to execute on all machines, and then sets the total deadline for this series of tasks. Under the fixed total deadline, combined with the existing timing relationship, find the sub-task allocation method that is as energy-efficient as possible, but the EDTS algorithm only splits and schedules one task, and achieves the best performance of a task itself.
- the mutual waiting time between subtasks due to timing constraints is long, and the local optimization of each task is contradictory to the overall optimization. Summary of the invention
- the object of the present invention is to overcome the shortcomings of the task scheduling method in the prior art, which is easy to cause a calculation delay when the total number of tasks is large, and cannot satisfy the defects of local optimum and overall optimization at the same time, thereby providing an intelligent scheduling for batch and large-granular tasks. method.
- the present invention provides an intelligent service scheduling method, which is used to implement scheduling of multiple tasks on a server cluster, where the multiple tasks do not have a timing relationship, and the tasks include multiple timing relationships.
- Subtask the method includes:
- Step 1) the multiple tasks are aggregated into different task groups, and in each task group, the subtasks at the same level in time series are aggregated into a new subtask;
- Step 2) Perform the parallel sub-task scheduling in the server cluster by using the new sub-task obtained in step 1) as the minimum scheduling unit.
- the step 2) includes an initial scheduling phase, where the initial scheduling phase includes: sub-tasks aggregated in each task group are classified into Q levels according to a time series relationship, and scheduling of the sub-tasks is divided into time levels according to a time level.
- the initial scheduling phase includes: sub-tasks aggregated in each task group are classified into Q levels according to a time series relationship, and scheduling of the sub-tasks is divided into time levels according to a time level.
- the Q round in each round, only g subtasks of this level are scheduled, and after they are fully allocated, the next subtask is scheduled; where g represents the number of task groups.
- the step 2) further includes a dynamic adjustment phase after the initial scheduling phase, where the dynamic adjustment phase includes: at the end of the compilation, during the execution of the server, whenever an aggregated subtask After the execution ends, adjust the scheduling start time of the subtasks that are subsequently aggregated according to the timing requirements.
- the subtasks aggregated in the task group are classified into urgent tasks or non-urgent tasks according to real-time requirements; for urgent tasks, to minimize the total tasks.
- the time span is scheduled for the target, and for non-urgent tasks, scheduling is performed with the aim of minimizing the total energy consumption if the deadline is met.
- the scheduling of the urgent tasks includes:
- Step 2-1-1 the earliest idle time EFi of the N servers in the statistical server cluster, EF 2 -EFN and their power CPSi, CPS 2 -CPSN in the working state;
- Step 2-1-2 placing the q-th subtasks 0 ⁇ , G 2 , q G g , q of all task groups into the waiting queue, the waiting queue meeting the requirements of the first in first out;
- MI m , q is the number of instructions corresponding to G m , q , MIPS n is the computing power of server n, and CPS n is the power of server n;
- Step 2-1-4 calculate the earliest completion time ECT n of G m , q on each machine according to t m , q, n , sort the obtained N ECT values, and assign the current subtask to The server with the smallest ECT value goes up, remember that the machine number is bestn; where ECT n is calculated as follows:
- Step 2-1-6 clear the subtask from the waiting queue
- Step 2-1-7 if the current waiting queue is empty, it ends, otherwise it returns to step 2-1-3).
- the scheduling of the non-urgency tasks includes:
- Step 2-2-2 statistics the earliest idle time EFi of the N servers, EF 2 ⁇ EF N and their power CPSi, CPS 2 -CPSN in the working state;
- Step 2-2-3 take out the qth subtasks 0 ⁇ , G 2 , q , ... G g , q in all task groups and put them into the waiting queue, which satisfies the first in first out Claim;
- MI m , q is the number of instructions corresponding to G m , q , MIPS n is the computing power of machine n, [?5 rock is the power of server n;
- Step 2-2-5 calculate the earliest completion time ECT n of G m , q on each machine according to t m , q, n , and sort the obtained N ECT values, wherein the calculation method of ECT n is as follows :
- Step 2-2-7 assign the current subtask to the marked server for execution
- Step 2-2-9 clear the subtask from the waiting queue
- Step 2-2-10 if the current waiting queue is empty, it ends, otherwise it returns to step 2-2-3).
- the invention has the advantages that a scheduling problem of a plurality of time-dependent subtasks included in a task is considered, and task aggregation is performed at a subtask level, thereby obtaining a minimum scheduling unit suitable for granularity.
- a scheduling problem of a plurality of time-dependent subtasks included in a task is considered, and task aggregation is performed at a subtask level, thereby obtaining a minimum scheduling unit suitable for granularity.
- comprehensive consideration of real-time and energy consumption performance indicators in terms of the selection of performance indicators.
- FIG. 1 is a flow chart of a smart service scheduling method of the present invention
- FIG. 2 is a schematic diagram of how to aggregate tasks in the intelligent service scheduling method of the present invention.
- FIG. 3 is a schematic diagram of parallel subtask scheduling in the intelligent service scheduling method of the present invention. detailed description
- the method of the invention is mainly for the phenomenon that large-scale tasks occur simultaneously and multiple sub-tasks of the same level exist simultaneously. There is no timing between tasks to be processed by the method of the present invention, but there is timing between subtasks in the same task.
- the method of the present invention includes the following steps:
- Step 1) task aggregation.
- the aggregation involved in this step is divided into two. Referring to Figure 2, one is the aggregation of tasks, that is, multiple tasks are randomly assigned to different task groups, and the second is the aggregation of subtasks, which will be the same task. Subtasks at the same level in the group are aggregated into a new subtask, which will be the minimum scheduling unit. The necessity of this polymerization and the polymerization process are explained in detail below.
- lob_MI m represents the number of instructions to be processed by the task Job m
- MIPS n represents the processor performance of the server Machine.
- the server When the number of tasks M is large, the server must perform repetitive pre-processing on multiple tasks, so the time and power consumption caused by OH account for a large proportion of the total cost, so that the total completion time and total power consumption are compared. Big. Therefore, before scheduling, the method of the present invention randomly aggregates M jobs to be executed into a plurality of Job Groups.
- the number of original tasks included in each Job Group is G_Size, and G_Size is called aggregate granularity.
- the number of Job Groups formed after aggregation is g, and the expression is:
- Step 2 perform parallel scheduling on the aggregated subtasks obtained in step 1).
- the scheduling work is divided into Q rounds.
- Each round of scheduling objects is g sub-tasks at the same level. Only after the current g sub-tasks are fully allocated, the next round of scheduling is started.
- the parallel scheduling link of the method of the present invention considers two task attributes: an urgent task and a non-urgent type. Among them, urgent tasks, that is, tasks with higher real-time requirements, should be targeted at minimizing the total time span (Makespan), non-urgent tasks require real-time tasks, and scheduling requirements must meet deadlines. In the case of the total energy consumption as much as possible.
- the method of the present invention sequentially schedules Q-level subtasks according to the priority order of the subtasks.
- the task scheduling is divided into Q rounds according to the time level. In each round, only g subtasks of the level are scheduled, and wait for them. After the full allocation, the next sub-task is scheduled, which ensures that when a certain sub-task starts to execute, its previous sub-task has been basically completed.
- This parallel scheduling algorithm reduces the waiting caused by timing constraints. Delay.
- the scheduling methods for urgent tasks and non-urgent tasks are also slightly different.
- the following is the allocation algorithm for the urgent task in the qth round:
- Step 2-1-1 statistics the earliest idle time of the N servers EFi EF 2 EF N and their power in the working state CPSi CPS 2 -CPSN
- Step 2-1-2 put all the q-level subtasks Gi, q , G 2 , q - G g , q (g total) of the Job Group into the waiting queue, the waiting queue meets the requirements of the first in first out .
- MI m , q is the number of instructions corresponding to G m , q , and MlPSn is the computing power of machine n.
- Step 2-1-4 according to t m, q, n calculate G m, q earliest completion time on each machine ECT n, the resulting
- N ECT values are sorted, and the current subtask is assigned to the server with the smallest ECT value, and the machine number is bestn.
- the calculation method of ECT n is as follows:
- Step 2-1-5 update load load, earliest idle time EF, total energy consumption Cost, record the start of the subtask Time and end time.
- Step 2-1-6 clear the subtask from the waiting queue.
- Step 2-1-7 if the current waiting queue is empty, it ends, otherwise it returns to step 2-1-3).
- Step 2-2-2 Count the earliest idle time EFi of the N servers, EF 2 to EF N and their powers CPSi, CPS 2 CPS N in the working state.
- Step 2-2-3 take out the qth subtasks 0 G 2 , q , ... G g , q (g total) in all Job Groups, put them into the waiting queue, the waiting queue meets advanced First out request.
- Step 2-2-4 take out the subtask with the smallest subscript in the waiting queue (that is, the first subtask being processed, assuming G m , q ) as the current subtask, and calculate its execution time on each server.
- MI m , q is the number of instructions corresponding to G m , q , and MlPSn is the computing power of machine n.
- Step 2-2-5 calculate the earliest completion time ECT n of G m , q on each machine according to t m , q, n , and sort the obtained N ECT values, wherein the calculation method of ECT n is as follows :
- Step 2-2-6 remember that the minimum ECT value is min(ECT).
- Step 2-2-7 assign the current subtask to the marked server for execution.
- Step 2-2-8 update load, EF, total energy consumption Cost, record the start time and end time of the subtask.
- Step 2-2-9 clear the subtask from the waiting queue.
- Step 2-2-10 if the current waiting queue is empty, it ends, otherwise it returns to step 2-2-3).
- the above allocation work is completed during the compilation process. After the compilation is completed, the system will obtain the execution machine mapping corresponding to the g*Q subtasks, and judge the execution order of multiple tasks on each server according to their start time. During the actual task execution, since there is a gap between the actual time of the task and the predicted ECT value, each time a subtask is executed, the start time of its subsequent task needs to be adjusted according to the timing requirement.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种智能服务调度方法,用于实现多个任务在服务器集群上的调度,所述多个任务之间不具有时序关系,所述任务包括多个具有时序关系的子任务;该方法包括:将多个任务聚合到不同的任务组中,在每个任务组中,将时序上处于同一级别的子任务聚合成一个新的子任务;以所述新的子任务作为最小调度单元在服务器集群中做并行子任务调度。本发明考虑了一个任务内部所包含的多个具有时序依赖的子任务的调度问题,在子任务级别上进行任务聚合,从而得出适合粒度的最小调度单元。另外,在性能指标的选取方面,综合考虑了实时性和能耗两种性能指标。
Description
一种智能服务调度方法
技术领域
本发明涉及操作系统领域, 特别涉及一种智能服务调度方法。 背景技术
任务调度是操作系统中的常见操作, 对于实时操作系统而言, 任务调度会直接影响 其实时性能。
用于实现任务调度的方法被称为任务调度算法,现有技术中的任务调度算法有多种, 但多数是出于任务级别的调度。 下面对现有技术中的任务调度算法分别做简要的介绍。
Min-Min 算法首先预测出当前任务队列中每一个任务在各个处理器上的最小完成 时间,然后将具有最小完成时间的任务分配给相应的处理器, 同时更新相应的处理器的 就绪时间, 将被分配的任务从任务队列移去, 如此重复分配剩余的任务, 直至整个任务 队列为空。 Min-Min算法易出现负载不均衡现象。
Max-Min算法与 Min-Min算法不同之处在于, 在确定了每个任务在各个处理器上 的最早完成时间之后, 将具有最大的最早完成时间的任务分配给相应的处理器, 并及时 更新相应的处理器就绪时间,对于剩下的任务进行重复处理。 Max-Min算法在负载均衡 方面比 Min-Min算法有所改善, 但 Max-Min算法是将整个任务作为最小调度单元进行 调度,而当一个任务内部包含了多个小粒度子任务时, Max-Min算法并未将各个子任务 的调度方案做详细分析。
Promethee算法在任务端, 根据用户自定义的标准 (例如任务规模、 在当前处理器 上的预测执行用时、花销等指标中的一种, 也可以是将多种指标进行加权处理得到的综 合性能指标)将待执行的任务进行优先级排序; 在处理器端, 实时监控机器状态, 一旦 有机器出现空闲状态,便根据事先得到的任务优先级排序将优先级最高的任务分配到当 前空闲的机器上去。 仿真表明, 适当地调整各个性能指标之间的权值, 可使算法实现多 方面的性能最优, 但 Promethee算法同样未涉及对于一个任务内部的多个小粒度子任务 的调度方案, 而是将任务作为整体进行分配。
另有一些针对某个任务内部的多级时序相关子任务的调度算法,但是并没有涉及到 如何应对大批量任务同时出现、 多个同级别子任务同时存在的问题。
对时序相关子任务并行调度的遗传算法首先分析了子任务之间的时序要求,对所有 子任务执行时的时间深度值进行排序。然后随机生成若干种 "子任务-节点"分配矩阵, 每一种 "子任务-节点"矩阵即为一种分配方案。 算法的思路是随机生成若干种分配方
案构成初始种群, 并对种群中的个体进行变异和筛选操作, 使之逐代改进, 从而得到新 的、 完成时间更短的方案。 经过很多代遗传算法之后, 可以得出稳定的、 较优的解。 但 是遗传算法的复杂度较高, 在网络中任务总数较多的情况下会造成很大的计算时延。
EDTS算法是针对一个任务内部的 N步子任务进行最优调度的方法,算法首先预测 出各个子任务在所有机器上执行所花费的时间及能耗,然后为这一连串任务设定了总截 止时间, 在固定的总截止时间下, 结合已有的时序关系, 找出尽可能节能的子任务分配 方式, 但 EDTS算法只是针对一个任务进行拆分、 调度, 实现的是一个任务自身的性能 最优, 当网络中出现大量媒体任务时,子任务之间由于时序约束造成的相互等待时长较 长, 每个任务的局部最优与整体的优化是矛盾的。 发明内容
本发明的目的在于克服现有技术中的任务调度方法在任务总数较多时容易造成计 算时延, 无法同时满足局部最优与整体最优等缺陷, 从而提供一种针对批量、 大粒度任 务的智能调度方法。
为了实现上述目的,本发明提供了一种智能服务调度方法, 用于实现多个任务在服 务器集群上的调度,所述多个任务之间不具有时序关系, 所述任务包括多个具有时序关 系的子任务; 该方法包括:
步骤 1 )、 将多个任务聚合到不同的任务组中, 在每个任务组中, 将时序上处于同 一级别的子任务聚合成一个新的子任务;
步骤 2)、 以步骤 1 )所得到的所述新的子任务作为最小调度单元在服务器集群中做 并行子任务调度。
上述技术方案中, 所述步骤 2)包括初始化调度阶段, 该初始化调度阶段包括: 将 各个任务组中聚合而成的子任务按照时序关系分为 Q级, 对子任务的调度按时间级别 分为 Q轮, 在每一轮中, 只调度该级别的 g个子任务, 待其完全分配后, 再调度下一 级子任务; 其中的 g表示任务组的数目。
上述技术方案中, 所述步骤 2)还包括位于所述初始化调度阶段之后的动态调整阶 段, 该动态调整阶段包括: 在编译结束后、 服务器执行的过程中, 每当一个聚合而成的 子任务执行结束后, 根据时序要求调整其后继聚合而成的子任务的调度开始时间。
上述技术方案中, 在所述步骤 2) 的初始化调度阶段, 将任务组中聚合而成的子任 务按照实时性要求分为紧迫性任务或非紧迫型任务; 对于紧迫性任务, 以最小化总时间 跨度为目标进行调度, 对于非紧迫型任务,在符合截止期限要求的情况下以尽可能减小 总能耗为目的进行调度。
上述技术方案中, 对紧迫性任务的调度包括:
步骤 2-1-1 )、 统计服务器集群中 N台服务器的最早空闲时间 EFi, EF2-EFN以及 它们在工作状态下的功率 CPSi, CPS2-CPSN;
步骤 2-1-2)、 将所有任务组的第 q级子任务0^, G2,q Gg,q放入等待队列, 该等待 队列满足先进先出的要求;
步骤 2-1-3 )、取出等待队列中最先被处理的子任务 Gm,q作为当前子任务,计算它在 各个服务器上的执行用时 tm,q,n及能耗 Cn; n=l,2,...N, 其中 tm,q I^ Cn的值计算方式如 下:
Cn = CPSn * t,
其中, MIm,q为 Gm,q对应的指令条数, MIPSn为服务器 n的计算能力, CPSn为服务 器 n的功率;
步骤 2-1-4)、 根据 tm,q,n计算出 Gm,q在各个机器上的最早完成时间 ECTn, 将得出的 N个 ECT值进行排序, 并将当前子任务分配到 ECT值最小的服务器上去, 记该机器号 为 bestn; 其中 ECTn的计算方法如下:
ECTn = EFn + t,
步骤 2-1-5)、 更新负载 load、 最早空闲时间 EF、 总能耗 Cost, 记录该子任务的开 时间及结束时间; 其中, 所述负载 load根据正在计算的任务的时长和等待的任务的数 量、 时长来计算,
iCostn + Cn (n = bestn)
Costn = i
[ Costn (n≠ bestn)
Cost=∑n=1 Costn; 步骤 2-1-6)、 将该子任务从等待队列中清除;
步骤 2-1-7)、 如果当前等待队列为空, 则结束, 否则回到步骤 2-1-3 )。
上述技术方案中, 对非紧迫性任务的调度包括:
步骤 2-2-1 )、 设置延迟容忍阈值 threshold=k* Deadline, 其中 k为常数, Deadline 为截止期限;
步骤 2-2-2)、 统计 N台服务器的最早空闲时间 EFi, EF2〜EFN以及它们在工作状 态下的功率 CPSi, CPS2-CPSN;
步骤 2-2-3 )、 取出所有任务组中的第 q级子任务0^, G2,q, ...Gg, q, 将其放入等待 队列, 该等待队列满足先进先出的要求;
步骤 2-2-4)、取出等待队列中最先被处理的子任务 Gm,q作为当前子任务,计算它在 各个服务器上的执行用时 tm,q,n, 及能耗 Cn (n=l,2,...N), 其中 tm,q I^ Cn值的计算方式 如下- tm,q,n =Mlm,q/MIPSn
r ― rpcn -个 t q n
其中, MIm,q为 Gm,q对应的指令条数, MIPSn为机器 n的计算能力, [?5„为服务器 n 的功率;
步骤 2-2-5)、 根据 tm,q,n计算出 Gm,q在各个机器上的最早完成时间 ECTn, 将得出的 N个 ECT值进行排序, 其中 ECTn的计算方法如下:
ECTn― EFn + tm q n
步骤 2-2-6)、记最小的 ECT值为 min(ECT),在所有满足 ECTn- min(ECT)< threshold 的服务器中,査找执行该子任务所需的耗电量最小的服务器,记该服务器的标号为 bestn; n=l,2, ...N;
步骤 2-2-7)、 将当前子任务分配到被标记的服务器上执行;
步骤 2-2-8)、 更新 load、 EF、 总能耗 Cost, 记录该子任务的开始时间及结束时间; 其中, fECTn ( n = bestn)
EF„=
t EFn ( n≠ bestn) fCostn + Cn ( n = bestn)
Costn =
[ Costn ( n≠ bestn)
Cost=∑n=1 Costn;
步骤 2-2-9)、 将该子任务从等待队列中清除;
步骤 2-2-10)、 如果当前等待队列为空, 则结束, 否则回到步骤 2-2-3 )。
本发明的优点在于考虑了一个任务内部所包含的多个具有时序依赖的子任务的调 度问题, 在子任务级别上进行任务聚合, 从而得出适合粒度的最小调度单元。 另外, 在 性能指标的选取方面, 综合考虑了实时性和能耗两种性能指标。
附图说明
图 1是本发明的智能服务调度方法的流程图;
图 2是本发明的智能服务调度方法中如何聚合任务的示意图;
图 3是本发明的智能服务调度方法中并行子任务调度的示意图。 具体实施方式
现结合附图对本发明作进一步的描述。
本发明的方法主要针对大批量任务同时出现、 多个同级别子任务同时存在的现象。 本发明方法所要处理的任务之间不存在时序, 但同一任务中的子任务之间存在时序。参 考图 1, 本发明的方法包括以下步骤:
步骤 1 )、 任务聚合。 本步骤中所涉及的聚合分为两次, 参考图 2, 一次是对任务的 聚合, 即将多个任务随机分配到不同的任务组中, 第二次是对子任务的聚合, 将同一个 任务组中时序上处于同一级别的子任务聚合成一个新的子任务,该新的子任务将作为最 小调度单元。 下文中对这一聚合的必要性与聚合过程做详细说明。
设定任务 101^在服务器 Machinen上的处理用时 tm,n表示如下:
tm,n = OH + Job_MIm/MIPSn
其中, OH 为服务器对接收到的数据包进行前期处理的固定用时, lob— MIm表示任 务 Jobm待处理的指令条数, MIPSn表示服务器 Machine的处理器性能。
当任务数目 M较大时, 服务器须对多个任务进行重复性前期处理, 因此由 OH造 成时间及电量消耗在总开销中所占的比例较大,使得总完成时间和总耗电量都较大。 因 此, 本发明的方法的在调度之前, 先将待执行的 M个 Job (任务) 随机聚合为若干个 Job Group (任务组)。每个 Job Group中包含的原任务数目为 G_Size, 称 G_Size为聚合 粒度。 聚合后形成的 Job Group数目为 g, 其表达式为:
g = M/G— Size
在将 Job聚合为 Job Group的过程中, 对于每个 Job Group, 将原 Job中处于同一级 别的子任务合并成一个新的子任务,合并后得出的新的子任务将作为最小调度单元被调 度到服务器集群中,且各个最小调度单元之间仍具有时序关联。 因此只要保证聚合后的 子任务在执行时满足时序约束条件,则一定能保证原任务中的各子任务的时序关系不被 破坏。
步骤 2)、 对步骤 1 ) 得到的聚合后的子任务做并行调度。
在调度层面, 调度工作分为 Q轮, 每一轮调度的对象是 g个处于同一级别的子任 务, 只有当前 g个子任务完全分配之后, 才开始下一轮的调度。
本发明方法的并行调度环节考虑了紧迫型任务和非紧迫型两种任务属性。其中, 紧 迫型任务即实时性要求较高的任务, 在调度时应以最小化总时间跨度 (Makespan ) 为 目标, 非紧迫型任务即实时性要求一般的任务, 调度时需在符合截止期限要求的情况下 尽可能减小总能耗。
其中, di , d2为不同的比例系数, _S. d2> di o
( 1 ) 初始化调度
参考图 3, 本发明方法按照子任务的优先级顺序依次对 Q级子任务进行调度, 任务 调度按时间级别分为 Q轮, 在每一轮中, 只调度该级别的 g个子任务, 待其完全分配 后, 再调度下一级子任务, 从而保证了当某一级子任务开始执行时, 其上一级子任务已 基本完成, 这种并行调度算法减小了因时序限制而造成的等待时延。
A、 时间紧迫型任务的初始化调度
紧迫型任务与非紧迫型任务的调度方法也略有不同。下面是紧迫型任务在第 q轮的 分配算法:
步骤 2-1-1 )、 统计 N台服务器的最早空闲时间 EFi EF2 EFN以及它们在工作状 态下的功率 CPSi CPS2-CPSN
步骤 2-1-2)、 将所有 Job Group的第 q级子任务 Gi,q, G2,q-Gg,q (共 g个) 放入等 待队列, 该等待队列满足先进先出的要求。
步骤 2-1-3 )、 取出等待队列中下标最小的子任务(即最先被处理的子任务, 假设为 Gm,q)作为当前子任务,计算它在各个服务器上的执行用时 tm,q,n,及能耗 Cn(n=l,2,...N), 其中 tm,q,n Cn的值计算方式如下
tm,q,n =Mlm,q/MIPSn
r ― rpcn - t im q n
其中, MIm,q为 Gm,q对应的指令条数, MlPSn为机器 n的计算能力。
步骤 2-1-4)、 根据 tm,q,n计算出 Gm,q在各个机器上的最早完成时间 ECTn, 将得出的
N个 ECT值进行排序, 并将当前子任务分配到 ECT值最小的服务器上去, 记该机器号 为 bestn。 其中 ECTn的计算方法如下:
ECTn― EFn + tm q n
步骤 2-1-5)、 更新负载 load、 最早空闲时间 EF、 总能耗 Cost, 记录该子任务的开始
时间及结束时间。其中,负载 load可根据正在计算的任务的时长和等待的任务的数量、 时长来计算; fECTn (n = bestn)
EF„= ,
t EFn (n≠ bestn) iCostn + Cn (n = bestn)
Costn = i ,
t Costn (n≠ bestn)
Cost=∑n=1 Costn。 步骤 2-1-6)、 将该子任务从等待队列中清除。
步骤 2-1-7)、 如果当前等待队列为空, 则结束, 否则回到步骤 2-1-3 )。
B、 时间非紧迫型任务的初始化调度
步骤 2-2-1 )、 设置延迟容忍阈值 threshold=k* Deadline, 其中 k为常数。
步骤 2-2-2)、 统计 N台服务器的最早空闲时间 EFi, EF2〜EFN以及它们在工作状 态下的功率 CPSi, CPS2 CPSN。
步骤 2-2-3 )、 取出所有 Job Group中的第 q级子任务0 G2,q, ...Gg, q (共 g个), 将其放入等待队列, 该等待队列满足先进先出的要求。
步骤 2-2-4)、 取出等待队列中下标最小的子任务(即最先被处理的子任务, 假设为 Gm,q)作为当前子任务,计算它在各个服务器上的执行用时 tm,q,n,及能耗 Cn(n=l,2,...N), 其中 tm,q,n Cn值的计算方式如下
tm,q,n =Mlm,q/MIPSn
r ― rpcn -个 t q n
其中, MIm,q为 Gm,q对应的指令条数, MlPSn为机器 n的计算能力。
步骤 2-2-5)、 根据 tm,q,n计算出 Gm,q在各个机器上的最早完成时间 ECTn, 将得出的 N个 ECT值进行排序, 其中 ECTn的计算方法如下:
ECTn― EFn + tm q n
步骤 2-2-6)、记最小的 ECT值为 min(ECT),在所有满足 ECTn- min(ECT)< threshold (n=l,2,...N)的服务器中, 査找执行该子任务所需的耗电量最小的服务器, 记该服务器的 标号为 bestn
步骤 2-2-7)、 将当前子任务分配到被标记的服务器上执行。 步骤 2-2-8)、 更新 load、 EF、 总能耗 Cost, 记录该子任务的开始时间及结束时间。
n)
) = bestn)
Cost=∑n=1 Costn
步骤 2-2-9)、 将该子任务从等待队列中清除。
步骤 2-2-10)、 如果当前等待队列为空, 则结束, 否则回到步骤 2-2-3 )。
(2) 动态调整执行顺序
以上分配工作均在编译过程中完成, 编译结束后, 系统将得出 g*Q个子任务对应 的执行机器映射, 并根据它们的开始时间判断出各服务器上多个任务的执行顺序。在实 际的任务执行过程中, 由于任务的实际用时与预测的 ECT值之前存在差距, 因此每当 一个子任务执行结束后, 需要根据时序要求调整其后继任务的开始时间。
最后所应说明的是, 以上实施例仅用以说明本发明的技术方案而非限制。尽管参照 实施例对本发明进行了详细说明,本领域的普通技术人员应当理解, 对本发明的技术方 案进行修改或者等同替换, 都不脱离本发明技术方案的精神和范围, 其均应涵盖在本发 明的权利要求范围当中。
Claims
1、 一种智能服务调度方法, 用于实现多个任务在服务器集群上的调度, 所述多个 任务之间不具有时序关系, 所述任务包括多个具有时序关系的子任务; 该方法包括: 步骤 1 )、 将多个任务聚合到不同的任务组中, 在每个任务组中, 将时序上处于同 一级别的子任务聚合成一个新的子任务;
步骤 2)、 以步骤 1 )所得到的所述新的子任务作为最小调度单元在服务器集群中做 并行子任务调度。
2、 根据权利要求 1所述的智能服务调度方法, 其特征在于, 所述步骤 2) 包括初 始化调度阶段, 该初始化调度阶段包括: 将各个任务组中聚合而成的子任务按照时序关 系分为 Q级, 对子任务的调度按时间级别分为 Q轮, 在每一轮中, 只调度该级别的 g 个子任务, 待其完全分配后, 再调度下一级子任务; 其中的 g表示任务组的数目。
3、 根据权利要求 2所述的智能服务调度方法, 其特征在于, 所述步骤 2) 还包括 位于所述初始化调度阶段之后的动态调整阶段, 该动态调整阶段包括: 在编译结束后、 服务器执行的过程中, 每当一个聚合而成的子任务执行结束后, 根据时序要求调整其后 继聚合而成的子任务的调度开始时间。
4、 根据权利要求 2或 3所述的智能服务调度方法, 其特征在于, 在所述步骤 2) 的初始化调度阶段,将任务组中聚合而成的子任务按照实时性要求分为紧迫性任务或非 紧迫型任务; 对于紧迫性任务, 以最小化总时间跨度为目标进行调度, 对于非紧迫型任 务, 在符合截止期限要求的情况下以尽可能减小总能耗为目的进行调度。
5、 根据权利要求 4所述的智能服务调度方法, 其特征在于, 对紧迫性任务的调度 包括:
步骤 2- 1-1 )、 统计服务器集群中 N台服务器的最早空闲时间 EFi, EF2-EFN以及 它们在工作状态下的功率 CPSi, CPS2-CPSN;
步骤 2- 1-2)、 将所有任务组的第 q级子任务0^, G2,q Gg,q放入等待队列, 该等待 队列满足先进先出的要求;
步骤 2- 1-3 )、取出等待队列中最先被处理的子任务 GM,Q作为当前子任务,计算它在 各个服务器上的执行用时 tm,q,n及能耗 Cn; n=l,2,...N, 其中 tm,q I^ Cn的值计算方式如 下:
tm,q,n =Mlm,q/MIPSn
r ― rpcn -个 t q n
其中, MIm,q为 Gm,q对应的指令条数, MIPSn为服务器 n的计算能力, CPSn为服务
器 n的功率;
步骤 2-1-4)、 根据 tm,q,n计算出 Gm,q在各个机器上的最早完成时间 ECTn, 将得出的 N个 ECT值进行排序, 并将当前子任务分配到 ECT值最小的服务器上去, 记该机器号 为 bestn; 其中 ECTn的计算方法如下:
ECTn― EFn + tm q n ;
步骤 2-1-5)、 更新负载 load、 最早空闲时间 EF、 总能耗 Cost, 记录该子任务的开始 时间及结束时间; 其中, 所述负载 load根据正在计算的任务的时长和等待的任务的数 量、 时长来计算, iECTn ( n = bestn)
EF„= n ,
t EFn ( n≠ bestn) iCostn + Cn ( n = bestn)
Costn = i ,
t Costn ( n≠ bestn)
Cost=∑n=1 Costn; 步骤 2-1-6)、 将该子任务从等待队列中清除;
步骤 2-1-7)、 如果当前等待队列为空, 则结束, 否则回到步骤 2-1-3 )。
6、 根据权利要求 4所述的智能服务调度方法, 其特征在于, 对非紧迫性任务的调 度包括:
步骤 2-2-1 )、 设置延迟容忍阈值 threshold=k* Deadline, 其中 k为常数, Deadline 为截止期限;
步骤 2-2-2)、 统计 N台服务器的最早空闲时间 EFi, EF2〜EFN以及它们在工作状 态下的功率 CPSi, CPS2-CPSN;
步骤 2-2-3 )、 取出所有任务组中的第 q级子任务0^, G2,q, ...Gg, q, 将其放入等待 队列, 该等待队列满足先进先出的要求;
步骤 2-2-4)、取出等待队列中最先被处理的子任务 Gm,q作为当前子任务,计算它在 各个服务器上的执行用时 tm,q,n, 及能耗 CN (n=l,2,...N), 其中 tM,Q I^ CN值的计算方式 如下- tm,q,n =Mlm,q/MIPSn
r ― rpcn -个 t q n
其中, MIm,q为 Gm,q对应的指令条数, MIPSn为机器 n的计算能力, [?5„为服务器 n
的功率;
步骤 2-2-5)、 根据 tm,q,n计算出 Gm,q在各个机器上的最早完成时间 ECTn, 将得出的 N个 ECT值进行排序, 其中 ECTn的计算方法如下:
ECTn = EFn + t,
步骤 2-2-6)、记最小的 ECT值为 min(ECT),在所有满足 ECTn- min(ECT)< threshold 的服务器中,査找执行该子任务所需的耗电量最小的服务器,记该服务器的标号为 bestn; n=l,2, ...N;
步骤 2-2-7)、 将当前子任务分配到被标记的服务器上执行;
步骤 2-2-8)、 更新 load、 EF、 总能耗 Cost, 记录该子任务的开始时间及结束时间; 其中,
bestn)
Cost=∑n=1 Costn;
步骤 2-2-9)、 将该子任务从等待队列中清除; 步骤 2-2-10)、 如果当前等待队列为空, 则结束, 否则回到步骤 2-2-3 )。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410001514.9A CN104765640B (zh) | 2014-01-02 | 2014-01-02 | 一种智能服务调度方法 |
CN201410001514.9 | 2014-01-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015100995A1 true WO2015100995A1 (zh) | 2015-07-09 |
Family
ID=53493119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2014/081424 WO2015100995A1 (zh) | 2014-01-02 | 2014-07-01 | 一种智能服务调度方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104765640B (zh) |
WO (1) | WO2015100995A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107613025A (zh) * | 2017-10-31 | 2018-01-19 | 武汉光迅科技股份有限公司 | 一种基于消息队列顺序回复的实现方法和装置 |
CN110716987A (zh) * | 2019-10-18 | 2020-01-21 | 浪潮软件股份有限公司 | 一种同步任务异步执行的方法和调度系统 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106814993B (zh) * | 2015-12-01 | 2019-04-12 | 广州神马移动信息科技有限公司 | 确定任务调度时间的方法、确定任务执行时间的方法和设备 |
CN107783831A (zh) * | 2016-08-24 | 2018-03-09 | 深圳市中兴微电子技术有限公司 | 一种任务调度方法及装置 |
CN107291544B (zh) * | 2017-08-03 | 2020-07-28 | 浪潮云信息技术股份公司 | 任务调度的方法及装置、分布式任务执行系统 |
CN108880663B (zh) * | 2018-07-20 | 2020-09-22 | 大连大学 | 基于改进遗传算法的天地一体化网络资源分配方法 |
CN109344239A (zh) * | 2018-09-20 | 2019-02-15 | 四川昆仑智汇数据科技有限公司 | 一种基于时序特征的业务过程模型查询方法及查询系统 |
CN109636028A (zh) * | 2018-11-29 | 2019-04-16 | 湖南工程学院 | 分布式智能调度方法 |
CN109858782A (zh) * | 2019-01-14 | 2019-06-07 | 北京三快在线科技有限公司 | 服务任务的调度方法、装置及电子设备 |
CN110928648B (zh) * | 2019-12-10 | 2022-05-20 | 浙江工商大学 | 融合启发式和智能计算的云工作流分段在线调度优化方法 |
CN111880898B (zh) * | 2020-07-27 | 2022-04-05 | 山东省计算中心(国家超级计算济南中心) | 一种基于微服务架构的服务调度方法及其实现系统 |
CN113799139A (zh) * | 2021-10-09 | 2021-12-17 | 北京云迹科技有限公司 | 一种机器人的控制方法、装置、计算机介质和计算机设备 |
CN116665670B (zh) * | 2023-07-28 | 2023-10-31 | 深圳博瑞天下科技有限公司 | 基于资源配置分析的语音识别任务管理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818875A (zh) * | 2006-03-16 | 2006-08-16 | 浙江大学 | 嵌入式操作系统分组硬实时任务调度的实现方法 |
CN202870825U (zh) * | 2012-08-29 | 2013-04-10 | 中国电力科学研究院 | 一种面向电力应用的启发式动态任务调度并行计算设备 |
CN103067468A (zh) * | 2012-12-22 | 2013-04-24 | 深圳先进技术研究院 | 云调度方法及其系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101222522B (zh) * | 2008-01-17 | 2011-08-10 | 武汉理工大学 | 一种考虑网格任务重要性和时间紧迫性的网格任务调度方法 |
US8245234B2 (en) * | 2009-08-10 | 2012-08-14 | Avaya Inc. | Credit scheduler for ordering the execution of tasks |
CN101692208B (zh) * | 2009-10-15 | 2011-03-30 | 北京交通大学 | 实时交通信息处理的任务调度方法 |
CN101702833B (zh) * | 2009-10-27 | 2012-03-14 | 武汉理工大学 | 一种移动网格任务调度方法 |
-
2014
- 2014-01-02 CN CN201410001514.9A patent/CN104765640B/zh active Active
- 2014-07-01 WO PCT/CN2014/081424 patent/WO2015100995A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818875A (zh) * | 2006-03-16 | 2006-08-16 | 浙江大学 | 嵌入式操作系统分组硬实时任务调度的实现方法 |
CN202870825U (zh) * | 2012-08-29 | 2013-04-10 | 中国电力科学研究院 | 一种面向电力应用的启发式动态任务调度并行计算设备 |
CN103067468A (zh) * | 2012-12-22 | 2013-04-24 | 深圳先进技术研究院 | 云调度方法及其系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107613025A (zh) * | 2017-10-31 | 2018-01-19 | 武汉光迅科技股份有限公司 | 一种基于消息队列顺序回复的实现方法和装置 |
CN110716987A (zh) * | 2019-10-18 | 2020-01-21 | 浪潮软件股份有限公司 | 一种同步任务异步执行的方法和调度系统 |
CN110716987B (zh) * | 2019-10-18 | 2023-06-20 | 浪潮软件股份有限公司 | 一种同步任务异步执行的方法和调度系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104765640B (zh) | 2018-02-16 |
CN104765640A (zh) | 2015-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015100995A1 (zh) | 一种智能服务调度方法 | |
CN104915407B (zh) | 一种基于Hadoop多作业环境下的资源调度方法 | |
CN111381950B (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和系统 | |
Wang et al. | Workflow as a service in the cloud: architecture and scheduling algorithms | |
Rajguru et al. | A comparative performance analysis of load balancing algorithms in distributed system using qualitative parameters | |
CN102043675B (zh) | 一种基于任务处理请求任务量大小的线程池管理方法 | |
CN103838621B (zh) | 用于调度例行作业的方法和系统、调度节点 | |
CN104298550A (zh) | 一种面向Hadoop的动态调度方法 | |
CN109783225B (zh) | 一种多租户大数据平台的租户优先级管理方法及系统 | |
CN103179048A (zh) | 云数据中心的主机QoS策略变换方法及系统 | |
US20140137122A1 (en) | Modified backfill scheduler and a method employing frequency control to reduce peak cluster power requirements | |
JP4912927B2 (ja) | タスク割当装置、及びタスク割当方法 | |
CN105740059B (zh) | 一种面向可分割任务的粒子群调度方法 | |
Kang et al. | A SLA driven VM auto-scaling method in hybrid cloud environment | |
Alhaidari et al. | Comparative analysis for task scheduling algorithms on cloud computing | |
CN111506407B (zh) | Pull模式与Push模式相结合的资源管理与作业调度方法、系统 | |
CN116755888A (zh) | 一种面向高性能计算云平台的作业调度装置及方法 | |
Natarajan | Parallel queue scheduling in dynamic cloud environment using backfilling algorithm | |
Kambatla et al. | UBIS: Utilization-aware cluster scheduling | |
CN110308991A (zh) | 一种基于随机任务的数据中心节能优化方法及系统 | |
Wang et al. | Energy-aware task scheduling of mapreduce cluster | |
Bagga et al. | Moldable load scheduling using demand adjustable policies | |
Chen et al. | Pickyman: A preemptive scheduler for deep learning jobs on gpu clusters | |
Sun et al. | A dynamic cluster job scheduling optimisation algorithm based on data irreversibility in sensor cloud | |
EP2595057B1 (en) | Modified backfill scheduler and a method employing frequency control to reduce peak cluster power requirements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14877427 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14877427 Country of ref document: EP Kind code of ref document: A1 |