CN111078381A - Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm - Google Patents
Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm Download PDFInfo
- Publication number
- CN111078381A CN111078381A CN201911261543.8A CN201911261543A CN111078381A CN 111078381 A CN111078381 A CN 111078381A CN 201911261543 A CN201911261543 A CN 201911261543A CN 111078381 A CN111078381 A CN 111078381A
- Authority
- CN
- China
- Prior art keywords
- task
- virtual machine
- individual
- time
- population
- 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.)
- Withdrawn
Links
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
The invention discloses a cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm, which comprises the following steps of: acquiring scheduling information; calculating a task level value; initializing a current generation population based on the hierarchy and the number of subtasks; evolution is carried out: improving the current generation population and calculating a fitness value by adopting FBI & D and LDI methods, carrying out parameterization uniform cross operation based on preference and two-dimensional topological sorting to form a new population, carrying out mutation operation on the new population, improving the new population and calculating the fitness value by adopting the FBI & D and LDI methods, and selecting N different individuals from the current generation population and the new population to form a new current generation population until an evolution termination condition is met; and outputting the scheduling optimization scheme. The two-dimensional integer coding method adopted by the invention can reduce the coding space of the algorithm and improve the efficiency and quality of solving.
Description
Technical Field
The invention relates to the field of computer technology, information technology and system engineering, in particular to a cloud workflow scheduling optimization method, and more particularly relates to a cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm.
Background
The workflow under the cloud computing environment, called the cloud workflow for short, is the integration of cloud computing and related technologies of the workflow, and has wide application prospects in the fields of cross-organization business collaboration, scientific computing and the like which need high-efficiency computing performance and large-scale storage support. In the cloud workflow, timing constraints exist among tasks, and the tasks are generally received and processed by taking a virtual machine as a minimum allocation unit of computing resources during execution. The cloud workflow scheduling refers to how to allocate tasks in the cloud workflow to appropriate virtual machines and how to arrange execution sequences of the tasks allocated to the virtual machines under the condition that the task timing and user requirement constraints are met, namely, the problem in two aspects is solved: task allocation and task execution order. The cloud workflow scheduling directly determines the performance of the whole cloud workflow system, and becomes an important research content of the cloud workflow system.
The current cloud workflow scheduling optimization method can be divided into three categories:
1) the heuristic method means that the distribution and execution sequence of the workflow tasks are generated by the heuristic method, such as: hetereogenous early stage Finish Time (HEFT), Critical Path On a Processors (CPOP), Leveled Min Time (LMT), Dynamic Level Scheduling (DLS), Dynamic Critical Path (DCP), and Localized Dynamic Critical Path (LDCP);
2) the intelligent computing method is characterized in that the distribution and execution sequence of the workflow tasks are searched and generated by the intelligent computing method; such as: genetic algorithm GA, particle swarm optimization PSO, simulated annealing SA and other methods;
3) the semi-intelligent calculation method combined with the heuristic method is that the workflow task allocation is generated by searching through an intelligent calculation method, the task execution sequence is generated by searching through the intelligent calculation method according to a task allocation scheme generated by searching through the intelligent calculation method by adopting a heuristic method based on priority, or the workflow task execution sequence is generated by searching through the intelligent calculation method, and the task allocation is generated by searching through the task execution sequence generated by searching through the intelligent calculation method through a heuristic method based on the earliest completion time.
However, the existing cloud workflow scheduling optimization methods have the following disadvantages:
1) heuristic methods can obtain a scheduling optimization in a short time, but their quality is usually not very high and depends on the type of workflow;
2) the algorithm efficiency of the intelligent calculation method depends on the design of coding and decoding, evolution iteration strategies, selection of control parameters and the like, wherein a solution space, namely a scheduling scheme, searched by combining a heuristic semi-intelligent calculation method is incomplete, so that the possibility that the optimal scheduling scheme cannot be searched theoretically exists, and meanwhile, the time efficiency is not very high because the heuristic method is required to be continuously called in the algorithm; the intelligent calculation method can theoretically realize global search, but the adoption of global search can reduce the search efficiency;
therefore, with the increase of the complexity of the cloud workflow and the application requirements thereof, it is urgently needed to design a more efficient method to solve the problem of cloud workflow scheduling optimization.
Disclosure of Invention
In order to overcome the defects that the quality of a heuristic method solution is usually not very high and depends on the type of a workflow, the imperfection of a heuristic semi-intelligent computing method and an intelligent computing method coding search space based on layered coding are combined, a large number of redundant coding search spaces exist due to the fact that a large number of many-to-one relations exist between individuals and a scheduling scheme, the search efficiency is reduced due to the adoption of global search, and the like in the intelligent computing method based on one-dimensional coding, the cloud workflow scheduling optimization method based on the two-dimensional coding genetic algorithm is provided, and the efficiency and the quality of solving are effectively improved.
The technical scheme adopted by the invention for solving the technical problems is as follows: a cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm comprises the following steps:
step 1: formalizing a scheduling problem, and acquiring information required by scheduling optimization;
get task set T ═ T1,t2,...,tIWhere I is the number of tasks, tiRepresenting a task i, namely a task with the number i;
acquiring a time sequence relation between tasks: parent task set PR of task iiTask ofi subtask set SCiWherein I is 1,2 …, I;
acquiring task related parameters: length t of task iiLength, i.e. the number of instructions that need to be consumed by a virtual machine when task i is processed, list t of input files that need to be processed when task i is processediIFL, output File List t generated after task i is processedi-OFL, and the size of the file in the file list, I ═ 1,2 …, I; task i is task i+The requirements of the parent task of (2) are: there is a file that is the output file of task i and is also task i+The input file of (a), namely:
obtaining a virtual machine set VM ═ VM in a cloud computing environment1,vm2,…,vmJWhere J is the number of virtual machines, vmjRepresents virtual machine j, i.e., the virtual machine numbered j;
acquiring related parameters of the virtual machine: computing power vm of virtual machine jjPs, bandwidth vm of virtual machine jjBw, wherein J ═ 1,2 …, J;
acquiring a support relationship between the task and the virtual machine: task set T that virtual machine j can handlejWherein J is 1,2 …, J; virtual machine set VM capable of processing task iiWherein I is 1,2 …, I;
step 2: calculating the level value level of the task;
for a starting task i without a parent task, the hierarchy value is:
leveli=1 (1)
the hierarchy values of other tasks are calculated using the following recursive formula:
and step 3: initializing a contemporary population;
initializing a current generation population, wherein the current generation population comprises 1 individual generated by an individual generation method based on HEFT-baseline and the remaining N-1 different individuals generated by an individual random generation method based on a hierarchy, and N is the population scale;
the individuals adopt two-dimensional integer coding, and the method comprises the following steps:wherein g isj,iIndicating the number assigned to virtual machine j and in virtual machine j the ith scheduled task, e.g. g3,25 indicates that task 5 is assigned to virtual machine 3 and is scheduled 2 nd among all tasks assigned to virtual machine 3;is a sequence of task numbers assigned to virtual machine j and satisfies a task timing constraint, IjRepresenting the number of tasks assigned to virtual machine j;
the individual generating method based on HEFT-baseline comprises the following steps:
step A1: make virtual machine available a time period list vatlj={[0,M]}, variable kj1, J-1, 2, …, J, where M is a near infinite number; enabling a task set UT to be processed to be T; let ready times rt of all tasksi=0,i=1,…,I;
Step A2: finding out the task with the minimum level value in the UT, taking out the task with the maximum number of subtasks from the task, and if the task with the maximum number of subtasks is more than one, randomly taking one of the tasks without setting t as ti;
Step A3: make available virtual machine set AVMi=VMiCalculating tiAre respectively allocated to AVMiT after each virtual machine in (1)iCompletion time of (d):
step A3.1: slave AVMiGet one virtual machine out of it, set to vmj;
Step A3.3: in vatljFinding out an idle time period [ v ] from morning to eveningj,υj]Satisfy upsilonj-νj≥eti,jAnd upsilonj-eti,j≥rti;
Step A3.4: calculating tiTo vmjStart time after treatment si,j=max{νj,rtiH, completion time fi,j=si,j+eti,j;
Step A3.5: if AVMiIf not, go to step A3.1, otherwise go to step A4;
step A4: finding earliest achievable t in virtual machine orderiVirtual machine of (2) is not set to vmj(ii) a Order toHandle tiTo vmj:
Step A4.1: let tiStart time s ofi=si,j,tiCompletion time fi=fi,j;
Step A4.3: list of time slots available in virtual machine, vatljDeletion of [ v ]j,υj]V, with insertion interval length greater than 0j,si]And [ fi,υj];
Step A5: if UT is not empty, go to step A2, otherwise go to step A6;
wherein:
is a handle tiTo vmjThe processing needs to obtain the file transfer time of the input file from other virtual machines, is to treatThe virtual machine of (1);
τi,j: is a handle tiTo vmjThe process requires obtaining the file transfer time of the input file from the shared database,
the individual random generation method based on the hierarchy comprises the following steps:
step B1: let UT be T, let k be variablej=1,j=1,2,…,J;
Step B2: randomly fetch a task with the minimum hierarchy value from UT, and set t as ti;
Step B3: slave VMiRandomly selecting one virtual machine in the virtual network, and setting the virtual machine not to be vmj;
Step B5: if UT is not empty, go to step B2; otherwise go to step B6;
and 4, step 4: improving all individuals in the contemporary population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
wherein: rf (radio frequency)iIs the response time of the task i,SFLiis the set of output files that task i outputs to the shared database, i.e.j is the virtual machine number of processing task i, i.e. satisfiesJ of (1);
the smaller the individual fitness value is, the better the individual is;
the FBI & D method comprises the steps of:
step C2: decoding the individual ch by adopting a serial individual decoding method based on an insertion mode to obtain the completion time f of all tasks1,…,fIAnd its workflow response time rs; if rs is less thanGo to step C3, otherwise, go to step C6;
step C3: corresponding gene sequence of each virtual machine j in individual chRearranging according to the task completion time from large to small, J is 1, …, J, forming reverse individuals
Step C4: to pairDecoding by adopting a serial reverse individual decoding method based on an insertion mode to obtain reverse completion time of all tasksAnd its reverse workflow response timeIf it isIf the value is less than rs, go to step C5, otherwise, go to step C6;
step C5: make the opposite direction single bodyThe gene sequence corresponding to each virtual machine j in the databaseRearranging according to the reverse completion time of the task from large to small, wherein J is 1, …, J, forming an individual ch, and turning to the step C2;
step C6: outputting the individual ch and the fitness value thereof, namely the workflow response time rs, and finishing the operation;
the LDI method comprises the following steps:
Step D2: finding out a virtual machine j' with the minimum load; if ld isj′>0, go to step D3, otherwise go to step D4;
step D4: order task set STj′=Tj′Go to step D5;
step D5: if STj′If not, from STj′Sequentially fetching a task i 'with the highest load of the virtual machine j' to go to step D6; otherwise go to step D7;
step D6: in thatSearching the last ancestor task number and the first descendant task number of the task i 'from front to back, and if both the ancestor task number and the first descendant task number are found, randomly searching a position between the last ancestor task number and the first descendant task number to insert the task i'; if the descendant task number does not exist and the ancestor task number exists, randomly finding a position behind the last ancestor task number to insert i'; if the descendant task number exists and the ancestor task number does not exist, randomly finding a position before the first descendant task number and inserting i'; if the descendant task number and the ancestor task number do not exist, randomly finding a position to insert i'; in thatDeleting i' to form new individual, using FBI&D, the method carries out decoding improvement on the new individual, if the new individual is improved, the improved individual is used for replacing the original individual, and the step D7 is carried out; otherwise go to step D5;
step D7: the LDI operation is finished;
the definition of the descendant task and the ancestor task is described as follows: if there is a task sequenceSatisfy the requirement ofIs thatWhere 1 is not more than k<n is thenIs thatThe task of the ancestor of (c),is thatThe descendant task of (2);
and 5: judging whether a termination condition is met, if so, turning to a step 10 after the evolution is finished, otherwise, turning to a step 6;
the termination condition is that the optimal individual is not improved after iteration to a designated generation TG or continuous iteration GG generation;
step 6: carrying out N times of parameterized uniform cross operations based on preference and two-dimensional topological sorting on the contemporary population to form a new population;
the parameterized uniform crossover operation based on preference and two-dimensional topological ordering comprises the following steps:
step E1: randomly selecting two different individuals from the contemporary population as parents by adopting a ranking-based round-robin method, and setting the individuals as parentsAnd chp1Has a fitness value of ch or lessp2Wherein: task number listTask number listJ is 1, …, J, order the task number listMaking a cycle control variable delta equal to 1;
step E2: if δ ≦ I, go to step E3, otherwise go to step E6;
step E3: generating a random number λ ∈ [0,1) if λ<pbGo to step E4, otherwise go to step E5;
step E4: from chp1Randomly selecting one task which is not empty and is numbered as the first element of the task, wherein the parent task does not exist in the task or the parent task is scheduledFromTake out the first element i' and add it toAnd from chp2If i', δ is δ +1, go to step E2;
step E5: from chp2Randomly selecting one task which is not empty and is numbered as the first element of the task, wherein the parent task does not exist in the task or the parent task is scheduledFromTake out the first element i' and add it toAnd from chp1Deleting i ", δ ═ δ +1, go to step E2;
wherein: p is a radical ofbE (0.5,1) is the preference rate;
and 7: performing mutation operation on each individual in the new population;
the mutation operation comprises the following steps:
step F1: randomly generating 1 random number lambda epsilon [0,1) if lambda is less than or equal to pmGo to step F2, otherwise go to step F5;
step F2: randomly selecting a task number i, and deleting a gene with the value of i in an individual;
step F3: slave VMiRandomly selecting a virtual machine again, and setting the virtual machine as a virtual machine j;
step F4: in thatSearching the last ancestor task number and the first descendant task number of the task i from front to back, and if both the last ancestor task number and the first descendant task number are found, randomly finding a position between the last ancestor task number and the first descendant task number to insert the i; if the descendant task number does not exist and the ancestor task number exists, randomly finding a position behind the last ancestor task number to insert i; if the descendant task number exists and the ancestor task number does not exist, randomly finding a position before the first descendant task number to insert i; if the descendant task number and the ancestor task number do not exist, randomly finding a position to insert i;
step F5: finishing individual variation operation;
wherein: p is a radical ofmE [0,1) is the mutation rate;
and 8: improving all individuals in the new population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
and step 9: selecting N different individuals from the current generation population and the new population from the superior to the inferior to form a new current generation population, and turning to the step 5;
step 10: and outputting the optimal individuals in the contemporary population, wherein the corresponding scheduling scheme is an optimal scheme.
Further, the serial individual decoding method based on the insertion mode in step C2 includes the following specific steps:
step G1: let ready times rt of all tasksi0, I-1, …, I; make all virtual machines available a time period list vatlj={[0,M]And the task number list allocated to the virtual machineWherein M is a number approaching infinity;
step G2: selecting a VTI which is not empty and has no parent task or has the scheduled parent task in the first element according to the numbering sequence of the virtual machinejFrom VTIjTaking out the first element i;
step G3: assigning task i to virtual machine j based on the insertion pattern;
Step G3.2: in vatljFinding out an idle time period [ v ] from morning to eveningj,υj]Satisfies upsilonj-νj≥etiAnd upsilonj-eti≥rti;
Step G3.3: calculating the start time and the completion time of task i: si=max{νj,rti},fi=si+eti(ii) a Updating the Ready time of a subtask of task i
Step G3.4: in vatljDeletion of [ v ]j,υj]V, with insertion interval length greater than 0j,si]And [ fi,υj];
Step G4: if VTI1,…,VTIJIf not, go to step G2, otherwise, go to step G5;
step G5: obtain start and completion times for all tasks: si、fiI1, …, I, calculating a fitness value; the operation is ended.
Further, the specific steps of the serial reverse individual decoding method based on the insertion mode in step C4 are as follows:
step H1: make reverse ready time of all tasksWherein: i is 1, …, and I, j is the virtual machine number that processes task I, i.e., satisfiesJ of (1); make virtual machine available a time period list vatlj={[0,M]And the task number list allocated to the virtual machineWherein M is a number approaching infinity;
step H2: selecting a VTI which is not empty and has no subtask numbered first element or has all subtasks scheduled according to the numbering sequence of the virtual machinejFrom VTIjTaking out the first element i;
step H3: assigning task i to virtual machine j based on insertion patterns:
Step H3.2: in vatljFinding out an idle time period [ v ] from morning to eveningj,υj]Satisfy upsilonj-νj≥etiAnd
step H3.3: calculating a reverse start time for task iReverse completion timeUpdating the Ready time of the parent task of task i
Step H3.4: list of time slots available in virtual machine, vatljDeletion of [ v ]j,υj]With an insertion interval length greater than 0And
step H4: if VTI1,…,VTIJIf not, go to step H2, otherwise, go to step H5;
step H5: obtaining reverse start times and reverse completion times for all tasks:calculating reverse workflow response timesThe operation is ended.
Further, the specific steps of randomly selecting two different individuals from the contemporary population as parents based on the ranking round-robin in the step E1 are as follows:
step E1.1: sequencing the individuals in the contemporary population from good to bad, namely, the fitness value is from small to large, and obtaining the sequencing value rk of the individual nnN is 1, …, N, where the first row takes 1 and the second row takes 2, toBy analogy, the last name is selected as N;
step E1.2: calculating the probability that the individual n is selectedWherein R is>1 is the discrimination coefficient;
step E1.5: generating a random number lambda2E [0,1) ifAnd n '≠ n, then individual n' is selected, go to step E1.6, otherwise go to step E1.5;
step E1.6: two different individuals n and n' are obtained as parents and the individual selection operation ends.
The invention has the beneficial effects that:
(1) compared with a heuristic method, a semi-intelligent calculation method combined with the heuristic method and an existing intelligent calculation method based on layered coding, the two-dimensional coding method adopted by the design of the invention has the advantage that any one scheduling scheme can have an individual corresponding to the two-dimensional coding method, so that the search space is complete and the global search can be realized.
(2) Compared with a general coding mode based on priority, the two-dimensional integer coding method for performing topological sorting on task scheduling sequence tasks according to the virtual machine, which is adopted by the invention, considers the time sequence relation among tasks with resource competition relation, so that the decoding method is simpler, the decoding efficiency can be effectively improved, and the overall efficiency of the algorithm is further improved.
(3) Compared with the existing two-stage one-dimensional coding method adopting a virtual machine distribution list and a task scheduling sequence list, the two-dimensional integer coding method which adopts the virtual machine to carry out topological ordering on the task scheduling sequence only limits the scheduling sequence of the tasks which are allocated to the same virtual machine and have resource competition conflict, thus the coding space can be effectively reduced compared with the two-stage one-dimensional coding method adopting the virtual machine distribution list and the task scheduling sequence list, for example, 3 tasks which can be in parallel exist in a cloud workflow, if the two-stage one-dimensional coding method adopting the virtual machine distribution list and the task scheduling sequence list is adopted, the topological ordering among the 3 tasks in the task scheduling sequence list part has 6 types, but if the 3 tasks are allocated to 3 different virtual machines, the scheduling schemes corresponding to the 6 types of topological ordering are the same, compared with a two-section one-dimensional coding method, the two-dimensional coding method can reduce the coding space of the algorithm and improve the searching efficiency of the algorithm.
(4) Compared with the traditional non-insertion mode and parallel decoding methods, the serial individual decoding method which is used for arranging the task execution as early as possible based on the insertion mode can generally find a better corresponding scheduling scheme.
(5) Compared with the common one-way decoding method, the invention designs the forward and backward individual decoding and improving strategy FBI & D and the load balancing strategy LDI considering the transmission time, thereby enhancing the neighborhood optimizing capability of the individual, and further improving the optimizing capability and the searching efficiency of the whole algorithm.
(6) Compared with the traditional random initialization method, the method disclosed by the invention has the advantages that an individual based on HEFT-baseline is introduced into the initial population, and a hierarchy-based individual random generation method is adopted for the rest individuals, so that the algorithm can start searching near the optimal scheme, and the convergence time of the algorithm is shortened.
(7) Aiming at the proposed two-dimensional integer coding method, the invention designs a new simple and effective intersection and mutation method, and if the father is valid and legal, the method can ensure that the generated daughter is also valid and legal.
Drawings
Fig. 1 is a schematic flow chart of a cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm.
FIG. 2 is a timing diagram of tasks of a Montage workflow according to an embodiment of the present invention.
Detailed Description
The present invention will be described in further detail with reference to fig. 1 and 2 and examples, but the present invention is not limited to the examples.
Suppose a cloud computing center has 6 virtual machines numbered 1 to 6, a virtual machine vm1,vm2,…,vm6The processing power and bandwidth of (a) are shown in table 1; the time sequence relation between tasks of a single workflow is shown in figure 2 and consists of 15 tasks with the serial numbers of 1 to 15, and the task t1,t2,…,t15The execution length of (1), the names of the input file and the output file after processing required for the processing, the length, and the virtual machine that can be processed are shown in table 2.
TABLE 1
TABLE 2
For the above case, as shown in fig. 1, a cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm includes the following implementation steps:
executing the step 1: formalizing a scheduling problem, and acquiring information required by scheduling optimization;
get task set T ═ T1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
Obtaining the time sequence relation between tasks, namely a parent task set PR of the task iiAnd a set of subtasks SCi: PR4={t1},PR5={t1,t2},PR6={t1,t3},PR7={t4,t5,t6},PR8={t7},PR9={t1,t8},PR10={t2,t8},PR11={t3,t8},PR12={t9,t10,t11},PR13={t12},PR14={t13},PR15={t14};
SC1={t4,t5,t6,t9},SC2={t5,t10},SC3={t6,t11},SC4={t7},SC5={t7},SC6={t7},SC7={t8},SC8={t9,t10,t11},SC9={t12},SC10={t12},SC11={t12},SC12={t13},SC13={t14},SC14={t15},
Acquiring relevant parameters of the task: t is t1.length=126000MI,t1.IFL={fd1,fd2},t1.OFL={f1-1,f1-2};
t2.length=138000MI,t2.IFL={fd1,fd3},t2.OFL={f2-1,f2-2};t3.length=132000MI,t3.IFL={fd1,fd4},t3.OFL={f3-1,f3-2};t4.length=102000MI,t4.IFL={fd1,f1-1,f1-2},t4.OFL={f4-1,f4-2};……;t15.length=7800MI,t15.IFL={f14-1},t15.OFL={f15-1};
fd1.size=36MB,fd2.size=4320MB,f1-1.size=3960MB,f1-2.size=3960MB,……,f14-1.size=1560MB,f15-1.size=420MB;
Acquiring a virtual machine set in a cloud computing environment: VM ═ VM1,vm2,vm3,vm4,vm5,vm6};
Acquiring related parameters of the virtual machine: vm1.ps=1000MI/s,vm1.bw=200Mbit/s;vm2.ps=1000MI/s,vm2.bw=200Mbit/s;vm3.ps=2000MI/s,vm3.bw=300Mbit/s;vm4.ps=2000MI/s,vm4.bw=300Mbit/s;vm5.ps=3000MI/s,vm5.bw=400Mbit/s;vm6.ps=3000MI/s,vm6.bw=400Mbit/s;
Acquiring a support relationship between the task and the virtual machine: t is1={t1,t2,t3,t4,t5,t6,t9,t13,t15},T2={t3,t5,t7,t9,t10,t11,t14},T3={t2,t3,t4,t6,t9,t11,t12},T4={t1,t2,t4,t6,t7,t8,t9,t10,t11,t12,t14},T5={t1,t2,t3,t4,t6,t7,t8,t9,t12,t14},T6={t1,t4,t5,t8,t11,t13,t14,t15};VM1={vm1,vm4,vm5,vm6},VM2={vm1,vm3,vm4,vm5},VM3={vm1,vm2,vm3,vm5},VM4={vm1,vm3,vm4,vm5,vm6},VM5={vm1,vm2,vm6},VM6={vm1,vm3,vm4,vm5},VM7={vm2,vm4,vm5},VM8={vm4,vm5,vm6},VM9={vm1,vm2,vm3,vm4,vm5},VM10={vm2,vm4},VM11={vm2,vm3,vm4,vm6},VM12={vm3,vm4,vm5},VM13={vm1,vm6},VM14={vm2,vm4,vm5,vm6},VM15={vm1,vm6}。
And (3) executing the step 2: calculating the level value level of the task;
if the task 1, the task 2 and the task 3 have no father task, the level is1=level2=level3=1;
Task 4 has only one parent task 1, thenSimilarly, the hierarchy values of other tasks may be obtained: level5=level6=2;level7=3;level8=4;level9=level10=level11=5;level12=6;level13=7;level14=8;level15=9。
And (3) executing the step: initializing a contemporary population;
taking the population size N as 10; initializing a contemporary population comprising 1 individual generated by an individual generation method based on HEFT-baseline and 9 different individuals generated by an individual random generation method based on a hierarchy;
the specific implementation process for generating an individual based on the HEFT-baseline individual generation method is as follows:
step a1 is executed: initializing all virtual machine available time period list vatlj={[0,M]},kj1, j is 1,2,3,4,5,6, where M is a near infinite number; UT ═ T1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}; initializing the ready time rt of all tasksi=0,i=1,…,15;
Step a2 is executed: the smallest level task in UTs is t1、t2、t3Due to SC1={t4,t5,t6,t9},SC2={t5,t10},SC3={t6,t11I.e. | SC1|=4,|SC2|=2,|SC32, so from UT to t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Get t out1;
Step a3 is executed: let AVM1=VM1={vm1,vm4,vm5,vm6H, calculating t1Allocated to AVM1={vm1,vm4,vm5,vm6T after each virtual machine in the1The completion time of (c), namely: step a3.1 is performed: slave AVM1={vm1,vm4,vm5,vm6Get vm out of1(ii) a Step a3.2 is performed: calculating t1To vm1Execution time after processing: omega1,1=126000/1000=126,τ1,18 × (36+4320)/200 ═ 174.24, thenStep a3.3 is performed: in vatl1Find out an idle time period [0, M ] from morning to evening]Satisfy M-0 ≥ et1,1300.24 and M-300.24 ≧ rt10; step a3.4 is performed: calculating t1To vm1Start time after treatment s1,1=max{v1,rt1Max {0,0}, 0, completion time f1,1=s1,1+et1,10+ 300.24-300.24; step a3.5 is performed: since the AVM is now1={vm4,vm5,vm6If not, go to step A3.1; step a3.1 is performed: slave AVM1={vm4,vm5,vm6Get vm out of4(ii) a Step a3.2 is performed: calculating t1To vm4Execution time after processing, omega1,4=63,τ1,4116.16, thenStep a3.3 is performed: in vatl4Find out an idle time period [0, M ] from morning to evening]M-0 is equal to or more than 179.16 and M-179.16 is equal to or more than 0; step a3.4 is performed: calculating t1To vm4Start time after treatment s1,4=max{v4,rt1Max {0,0}, 0, completion time f1,4=s1,4+et1,40+ 179.16-179.16; step a3.5 is performed: due to thisTime-of-flight AVM1={vm5,vm6If not, go to step A3.1; … …, the steps A3.1 to A3.5 are repeated until the step A is finishedTo obtain s1,1=0,s1,4=0,s1,5=0,s1,6=0,f1,1=300.24,f1,4=179.16,f1,5=129.12,f1,6When the value is 129.12, the step A4 is switched to;
step a4 is executed: finding earliest achievable t in virtual machine order1Is vm, which is5,k5=k5+ 1-2, and t1To vm5Namely: step a4.1 is performed: let t1Start time s of1=s1,50, completion time f1=f1,5129.12; step a4.2 is performed: updating t1Ready time of subtask(s):
rt4=max{rt4,f1}=max{0,129.12}=129.12,rt5=129.12,rt6=129.12,rt9129.12; step a4.3 is performed: list of time slots available in virtual machine, vatl5Deletion of [0, M]Insertion interval length greater than 0 [129.12, M]Then, vall5={[129.12,M]};
Step a5 is executed: since UT is t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step A2;
step a2 is executed: the smallest level task in UTs is t2、t3Due to SC2={t5,t10},SC3={t6,t11I.e. | SC2|=2,|SC32, so at t2、t3Is randomly selected one of t3From UT ═ t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Get t out of3;
Step a3 is executed: let AVM3=VM3={vm1,vm2,vm3,vm5H, calculating t3Allocated to AVM3={vm1,vm2,vm3,vm5T after each virtual machine in the3The completion time of (c), namely: step a3.1 is performed: slave AVM3={vm1,vm2,vm3,vm5Get vm out of1(ii) a Step a3.2 is performed: calculating t3To vm1Execution time after processing: omega3,1=132,τ3,1174.24, then et3,1306.24; step a3.3 is performed: in vatl1Find out an idle time period [0, M ] from morning to evening]M-0 is equal to or more than 306.24 and M-306.24 is equal to or more than 0; step a3.4 is performed: calculating t3To vm1Start time after treatment s3,1Max {0,0}, 0, completion time f3,1=s3,1+et3,1306.24; step a3.5 is performed: since the AVM is now3={vm2,vm3,vm5If not, go to step A3.1; … …, the steps A3.1 to A3.5 are repeated until the step A is finishedTo obtain s3,1=0,s3,2=0,s3,3=0,s3,5=129.12,f3,1=306.24,f3,2=306.24,f3,3=182.16,f3,5260.24, go to step a 4;
step a4 is executed: finding earliest achievable t in virtual machine order3Is vm, which is3,k3=k3+ 1-2, and t3To vm3Namely: step a4.1 is performed: let t3Start time s of3=s3,30, completion time f3=f3,3182.16; step a4.2 is performed: updating t3Ready time of subtask(s):
rt6=max{rt6,f3}=max{129.12,182.16}=182.16,rt11182.16; step a4.3 is performed: list of time slots available in virtual machine, vatl3Deletion of [0, M]Insertion interval length greater than 0 [182.16, M]Then, vall3={[182.16,M]};
Step a5 is executed: since UT is t2,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step A2;
step a2 is executed: the smallest level task in UTs is t2From UT ═ t2,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Get t out of2;
Step a3 is executed: let AVM2=VM2={vm1,vm3,vm4,vm5H, calculating t2Allocated to AVM2={vm1,vm3,vm4,vm5T after each virtual machine in the2Completion time of (d); namely: step a3.1 is performed: slave AVM2={vm1,vm3,vm4,vm5Get vm out of1(ii) a Step a3.2 is performed: calculating t2To vm1Execution time after processing: omega2,1=138,τ2,1174.24, then et2,1312.24; step a3.3 is performed: in vatl1Find out an idle time period [0, M ] from morning to evening]M-0 is equal to or more than 312.24 and M-312.24 is equal to or more than 0; step a3.4 is performed: calculating t2To vm1Start time after treatment s2,10, completion time f2,1312.24; step a3.5 is performed: since the AVM is now2={vm3,vm4,vm5If not, go to step A3.1; … …, the steps A3.1 to A3.5 are repeated until the step A is finishedTo obtain s2,1=0,s2,3=182.16,s2,4=0,s2,5=129.12,f2,1=312.24,f2,3=367.32,f2,4=185.16,f2,5262.24, go to step a 4;
step a4 is executed: finding earliest achievable t in virtual machine order2Is vm, which is4,k4=k4+ 1-2, and t2To vm4(ii) a Namely: step a4.1 is performed: let t2Start time s of2=s2,40, completion time f2=f2,4185.16; step a4.2 is performed: updating t2Ready time of subtask(s):
rt5=max{rt5,f2}=max{129.12,185.16}=185.16,rt10185.16; step a4.3 is performed: list of time slots available in virtual machine, vatl4Deletion of [0, M]Insertion interval length greater than 0 [185.16, M]Then, vall4={[185.16,M]};
Step a5 is executed: since UT is t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step A2;
……
the steps A2 to A5 are repeatedly executed until the step A2 and the step A5 are executedGo to step A6;
step a6 is executed: outputting an individual ch based on HEFT-baseline1{ (), (), (3,11), (2,10,12), (1,6,4,7,8,9), (5,13,14,15) }, the operation ends;
the specific implementation process of generating an individual by the individual random generation method based on the hierarchy is as follows:
step B1 is executed: UT ═ T1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};k1=1,k2=1,k3=1,k4=1,k5=1,k6=1;
Step B2 is executed: from UT ═ t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Randomly taking a task with the minimum level value, which is t2;
Step B3 is executed: slave VM2={vm1,vm3,vm4,vm5Randomly selecting a virtual machine which is vm4;
Step B5 is executed: since UT is t1,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step B2;
step B2 is executed: from UT ═ t1,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Randomly taking a task with the minimum level value, which is t3;
Step B3 is executed: slave VM3={vm1,vm2,vm3,vm5Randomly selecting a virtual machine which is vm3;
Step B5 is executed: since UT is t1,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step B2;
step B2 is executed: from UT ═ t1,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Randomly taking a task with the minimum level value, which is t1;
Step B3 is executed: slave VM1={vm1,vm4,vm5,vm6Randomly selecting a virtual machine which is vm4;
Step B5 is executed: since UT is t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step B2;
step B2 is executed: from UT ═ t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Randomly taking a task with the minimum level value, which is t6;
Step B3 is executed: slave VM6={vm1,vm3,vm4,vm5Randomly selecting a virtual machine which is vm5;
Step B5 is executed: since UT is t4,t5,t7,t8,t9,t10,t11,t12,t13,t14,t15If not, go to step B2;
……
the steps B2 to B5 are repeatedly executed until the step B2 and the step B5 are executedGo to step B6;
step B6 is executed: output individual ch2{ (4,15), (5,7,10,9,14), (3), (2,1,11,12), (6), (8,13) }, the operation ends;
similarly, the hierarchy-based individual random generation method generates other different individuals in the contemporary population as follows:
ch3={(6,5,13,15),(14),(3,4,11,12),(7,8,10),(2,9),(1)};
ch4={(6,9),(10,14),(3),(1,4,11,12),(2,7),(5,8,13,15)};
ch5={(2,9,13,15),(7,11),(3),(1,6,8,10,12,14),(),(4,5)};
ch6={(5,9,15),(10,11),(),(1,12),(3,2,6,4,7,14),(8,13)};
ch7={(2,4),(5,9,10),(11),(),(1,3,6,7,12),(8,13,14,15)};
ch8={(2,15),(3,5,7,10),(),(8,9,12),(1,6),(4,11,13,14)};
ch9={(4),(7),(9),(2,6,8,10,12),(3,14),(1,5,11,13,15)};
ch10={(2,1,5),(3),(),(6,7,11,10,12),(8,9),(4,13,14,15)};
the initial current generation population thus finally generated is CP ═ ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10}。
And (4) executing: improving all individuals in the contemporary population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
first, FBI was applied to all individuals in the contemporary population&D method improvements, e.g. to ch in contemporary populations10As { (2,1,5), (3), (), (6,7,11,10,12), (8,9), (4,13,14,15) } FBI is used&The method D comprises the following specific implementation processes:
step C2 is executed: individual ch adopting serial individual decoding method based on insertion mode10Decoding is carried out, and the completion time of all tasks is obtained: f. of1=612.48,f2=312.24,f3=306.24,f4=964.00,f5=721.92,f6=1294.44,f7=1316.76,f8=1321.32,f9=1676.12,f10=2070.20,f11=1683.16,f12=2271.88,f13=2281.16,f14=2291.16,f152293.76, and its workflow response time rs102302.16; due to rs102302.16 is less thanGo to step C3;
step C3 is executed: an individual ch10The gene sequence corresponding to each virtual machine j in the databaseRearranging according to the task completion time from large to small, wherein j is 1, … and 6, and forming reverse individuals
Step C4 is executed: to pairDecoding by adopting a serial reverse individual decoding method based on an insertion mode to obtain reverse completion time of all tasks: and its inverse fitness valueDue to the fact thatLess than rs10When the result is 2302.16, go to step C5;
step C5 is executed: make the opposite direction single bodyThe gene sequence corresponding to each virtual machine j in the databaseRearranging according to the reverse completion time of the task from large to small, wherein j is 1, … and 6 to form individuals
ch10={(1,2,5),(3),(),(6,7,11,10,12), (8,9), (4,13,14,15) }, go to step C2;
step C2 is executed: individual ch adopting serial individual decoding method based on insertion mode10Decoding is carried out, and the completion time of all tasks is obtained: f. of1=300.24,f2=612.48,f3=306.24,f4=651.76,f5=721.92,f6=988.20,f7=1010.52,f8=1015.08,f9=1369.88,f10=1763.96,f11=1376.92,f12=1965.64,f13=1974.92,f14=1984.92,f151987.52, and its workflow response time rs101995.92; due to rs101995.92 equal toGo to step C6
Step C6 is executed: output individual ch10{ (1,2,5), (3), (), (6,7,11,10,12), (8,9), (4,13,14,15) } and its fitness value, i.e., workflow response time rs101995.92, the operation ends;
with the above mentioned individual ch10As an example, the serial individual decoding method based on the insertion mode is implemented as follows:
step G1 is executed: let ready times rt of all tasksi0,1, …, 15; make available time period list of virtual machine vatlj={[0,M]1,2,3,4,5,6, where M is a number close to infinity; order list VTI of task number assigned to virtual machine1=(2,1,5),VTI2=(3),VTI3=(),VTI4=(6,7,11,10,12),VTI5=(8,9),VTI6=(4,13,14,15);
Step G2 is executed: due to VTI1Has a first element of 2, and task 2 has no parent task, so the slave VTI1The first element 2 is taken out of (2,1, 5);
step G3 is executed: assigning task 2 to virtual machine 1 based on the insertion pattern; namely: step G3.1 is performed: meterComputing the execution time of task 2Step G3.2 is performed: in vatl1Find out an idle time period [0, M ] from morning to evening]Satisfy M-0 ≥ et2312.24 and M-312.24 ≧ rt20; step G3.3 is performed: calculate start time and completion time for task 2:
s2=max{v1,rt2}=max{0,0}=0,f2=s2+et20+ 312.24-312.24; update ready time of subtask of task 2: rt is an integer of5=max{rt5,f2}=max{0,312.24}=312.24,rt10312.24; step G3.4 is performed: list of time slots available in virtual machine, vatl1Deletion of [0, M]Insertion interval length greater than 0 [312.24, M]Then, vall1={[312.24,M]};
Step G4 is executed: due to VTI1,…,VTI6If not, go to step G2;
step G2 is executed: due to VTI1Has a first element of 1 and task 1 has no parent task, so the slave VTI1The first element 1 is taken out of (1, 5);
step G3 is executed: assigning task 1 to virtual machine 1 based on the insertion pattern; namely: step G3.1 is performed: computing the execution time of task 1Step G3.2 is performed: in vatl1Find an idle period of time from morning to evening [312.24, M]The requirements that M-312.24 is more than or equal to 300.24 and M-300.24 is more than or equal to 0 are met; step G3.3 is performed: calculate start time and completion time for task 1: s1=max{v1,rt1}=max{312.24,0}=312.24,f1612.48, update the ready time for the subtask of task 1: rt is an integer of4=max{rt4,f1}=max{0,612.48}=612.48,rt5=max{rt5,f1}=612.48,rt6=612.48,rt9612.48; step G3.4 is performed: list of time slots available in virtual machine, vatl1Deletion [312.24, M]Insertion interval length greater than 0 [612.48, M]Then, vall1={[612.48,M]};
Step G4 is executed: due to VTI1,…,VTI6If not, go to step G2;
step G2 is executed: since VTI is now1Has a first element of 5 and the parent task of task 5 has all been scheduled, thus the slave VTI1Taking out a first element 5 from the formula (5);
step G3 is executed: assigning task 5 to virtual machine 1 based on the insertion pattern; namely: step G3.1 is performed: computing the execution time of task 1Step G3.2 is performed: in vatl1Find an idle period of time from morning to evening [612.48, M]The requirements that M-612.48 is more than or equal to 109.44 and M-109.44 is more than or equal to 612.48 are met; step G3.3 is performed: calculate start time and completion time of task 5: s5=max{v1,rt5}=max{612.48,612.48}=612.48,f5721.92, the ready time rt of the subtask of task 5 is updated7721.92; step G3.4 is performed: list of time slots available in virtual machine, vatl1Deletion [612.48, M]Insertion interval length greater than 0 [721.92, M]Then, vall1={[721.92,M]};
Step G4 is executed: due to VTI1,…,VTI6If not, go to step G2;
step G2 is executed: since VTI is now1Become () and VTI2Has a first element of 3, and task 3 has no parent task, so the slave VTI2Taking out a first element 3 from the group (3);
step G3 is executed: assigning task 3 to virtual machine 2 based on the insertion pattern; namely: step G3.1 is performed: computing the execution time et of task 33306.24; step G3.2 is performed: in vatl2Find out an idle time period [0, M ] from morning to evening]M-0 is equal to or more than 306.24 and M-306.24 is equal to or more than 0; step G3.3 is performed: calculate the start time s of task 33=max{v2,rt3Max {0,0}, 0, completion time f3=306.24,Update ready time of subtask of task 3: rt is an integer of6=max{rt6,f3}=max{612.48,306.24}=612.48,rt11=max{rt11,f3306.24; step G3.4 is performed: list of time slots available in virtual machine, vatl2Deletion of [0, M]When the length of the insertion section is greater than 0, vall2={[306.24,M]};
Step G4 is executed: due to VTI1,…,VTI6If not, go to step G2;
……
so that steps G2 to G4 are repeatedly executed until VTI1,…,VTI6Go to step G5 if all are empty;
step G5 is executed: obtain start and completion times for all tasks: s1=312.24,s2=0.00,s3=0.00,s4=612.48,s5=612.48,s6=612.48,s7=1294.44,s8=1316.76,s9=1321.32,s10=1683.16,s11=1321.32,s12=2070.20,s13=2271.88,s14=2281.16,s15=2291.16;f1=612.48,f2=312.24,f3=306.24,f4=964.00,f5=721.92,f6=1294.44,f7=1316.76,f8=1321.32,f9=1676.12,f10=2070.20,f11=1683.16,f12=2271.88,f13=2281.16,f14=2291.16,f152293.76, its fitness value, i.e. workflow response time, is calculated: due to the fact thatAnd SFL15={f15-1Get the resultsFinishing the operation;
with the above-mentioned individualsFor example, the serial reverse individual decoding method based on the insertion mode is implemented as follows:
step H1 is performed: due to the fact thatAnd SFL15={f15-1Let the reverse ready time of the task:make virtual machine available a time period list vatl1={[0,M]},vatl2={[0,M]},……,vatl6={[0,M]And ordering a task number list VTI allocated to the virtual machine1=(5,1,2),VTI2=(3),VTI3=(),VTI4=(12,10,11,7,6),VTI5=(9,8),VTI6(15,14,13,4) where M is a number close to infinity;
step H2 is performed: due to VTI1、VTI2、VTI3、VTI4、VTI5Tasks that are either empty or numbered with their first element have subtasks that have not yet been scheduled, while the VTI6Is 15, and task 15 has no subtasks, so the slave VTI6First element 15, VTI, is taken out of (15,14,13,4)6=(14,13,4);
Step H3 is performed: assigning tasks 15 to virtual machines 6 based on the insertion pattern; namely: step H3.1 is performed: computing the execution time of a task 15Step H3.2 is performed: in vatl6Find out an idle time interval [0, M ] from morning to evening]Satisfy M-0 ≥ et152.60 andstep H3.3 is performed: calculating the reverse start time of task 15Reverse completion timeUpdating the reverse ready time of the parent task of task 15Step H3.4 is performed: list of time slots available in virtual machine, vatl6Deletion of [0, M]Insertion interval length greater than 0 [0,8.4 ]]And [11, M];
Step H4 is performed: due to VTI1,…,VTI6If not, go to step H2;
step H2 is performed: due to VTI1、VTI2、VTI3、VTI4、VTI5Tasks that are either empty or numbered with their first element have subtasks that have not yet been scheduled, while the VTI6Is 14 and task 14 has no subtasks, so the slave VTI6First element 14, VTI, out of (14,13,4)6=(13,4);
Step H3 is performed: assigning the task 14 to the virtual machine 6 based on the insertion pattern; namely: step H3.1 is performed: computing the execution time of a task 14Step H3.2 is performed: in vatl6Find out an idle period [11, M ] from morning to evening]M-11 is not less than 10 andstep H3.3 is performed: calculating the reverse start time of task 14Reverse completion timeUpdating the reverse ready time of the parent task of task 14Step H3.4 is performed: in deficiencyList of available time slots of virtual machine vatl6Deletion in [11, M]Insertion interval length greater than 0 [21, M ]];
Step H4 is performed: due to VTI1,…,VTI6If not, go to step H2;
……
so that the steps H2 to H4 are repeatedly executed until VTI1,…,VTI6Go to step H5 if empty;
step H5 is performed: obtaining reverse start times and reverse completion times for all tasks: calculating reverse workflow response timesFinishing the operation;
similarly, other individuals in the contemporary population become:
ch1={(),(),(3,11),(2,10,12),(1,6,4,7,8,9),(5,13,14,15)};
ch2={(4,15),(5,7,10,9,14),(3),(2,1,11,12),(6),(8,13)};
ch3={(6,5,13,15),(14),(3,4,11,12),(7,8,10),(2,9),(1)};
ch4={(6,9),(10,14),(3),(1,4,11,12),(2,7),(5,8,13,15)};
ch5={(2,9,13,15),(7,11),(3),(1,6,8,10,12,14),(),(4,5)};
ch6={(5,9,15),(10,11),(),(1,12),(2,3,6,4,7,14),(8,13)};
ch7={(2,4),(5,9,10),(11),(),(1,3,6,7,12),(8,13,14,15)};
ch8={(2,15),(3,5,7,10),(),(8,9,12),(1,6),(4,11,13,14)};
ch9={(4),(7),(9),(2,6,8,10,12),(3,14),(1,5,11,13,15)};
the fitness values, i.e. the workflow response times, are respectively: rs1=1098.16,rs2=5667.80,rs3=5432.56,rs4=5024.20,rs5=5075.36,rs6=4288.64,rs7=2833.72,rs8=2195.68,rs9=2873.16;
All individuals in the contemporary population are improved by the LDI method, for example, ch in the contemporary population2Specific implementation procedures modified by the LDI method are as follows:
step D1 is executed: order a task list VTN assigned to a virtual machine1={t4,t15},VTN2={t5,t7,t10,t9,t14},VTN3={t3},VTN4={t2,t1,t11,t12},VTN5={t6},VTN6={t8,t13}; the load of each virtual machine is calculated,the load ld of other virtual machines can be obtained in the same way2=374.4,ld3=66,ld4=194.4,ld5=38,ld6=8;
Step D2 is executed: find the least loaded virtual machine, which is vm6Due to ld6=8>0, so go to step D3;
step D5 is executed: due to ST6={t11,t14If not, from ST6Find a task with the highest load of the virtual machine, which is t14Go to step D6;
step D6 is executed: due to (g)6,1,g6,2) If (8,13) the ancestral task number of task 14 exists, but the descendant task number of task 14 does not exist, and therefore (g) is (g)6,1,g6,2) Look for its last ancestor task number from front to back in (8,13), which is g6,213 at g6,2Then randomly find a position to insert 14, g6,314; task list (g) of virtual machine 2 in which task 14 originally exists2,1,g2,2,g2,3,g2,4,g2,5) Deleting 14 from (5,7,10,9,14) to form new individualsUsing FBI&Method for treating new individualsPerforming decoding improvement to obtain workflow response timeDue to the fact thatThus replacing the original individual with a modified individual, i.e.Go to step D7;
step D7 is executed: the LDI operation is finished;
similarly, other individuals in the contemporary population become:
ch1={(),(),(3,11),(2,10,12),(1,6,4,7,8,9),(5,13,14,15)};
ch3={(6,5,13,15),(14),(3,4,11,12),(7,8,10),(2,9),(1)};
ch4={(6,9),(10),(3),(1,4,11,12),(2,7),(5,8,13,14,15)};
ch5={(9,13,15),(7,11),(3),(1,6,8,10,12,14),(2),(4,5)};
ch6={(5,15),(10,11),(9),(1,12),(2,3,6,4,7,14),(8,13)};
ch7={(2,4),(5,10),(11),(9),(1,3,6,7,12),(8,13,14,15)};
ch8={(15),(3,5,7,10),(2),(8,9,12),(1,6),(4,11,13,14)};
ch9={(4),(7),(9),(2,6,8,10,12),(3,14),(1,5,11,13,15)};
ch10={(1,5),(3),(2),(6,7,11,10,12),(8,9),(4,13,14,15)};
the fitness values, i.e. the workflow response times, are respectively: rs1=1098.16,rs3=5432.56,rs4=2061.80,rs5=4912.16,rs6=4192.64,rs7=2305.96,rs8=2189.68,rs9=2873.16,rs10=1887.12;
And 5, executing the step: judging whether a termination condition is met, if so, turning to a step 10 after the evolution is finished, otherwise, turning to a step 6;
the termination condition is that continuous iteration GG is 20 generations of optimal individuals has no improvement;
the population generated by the above process is an improved population after initialization, and currently only evolution and iteration are performed for one generation, and the termination condition is not met, so that the process goes to step 6.
And 6, executing the step: carrying out N times of parameterized uniform cross operations based on preference and two-dimensional topological sorting on the contemporary population to form a new population;
preference rate pb=0.7;
The specific implementation process of carrying out the preference and two-dimensional topological ordering based parameterized uniform crossing operation on the contemporary population is as follows:
executeStep E1: two different individuals were randomly selected as parents from the contemporary population using a rank-based betting round method, namely: step E1.1 is performed: sequencing the individuals in the current generation population from good to bad, namely, the fitness value is from small to large, and obtaining a sequencing value corresponding to each individual: rk1=1,rk2=6,rk3=10,rk4=3,rk5=9,rk6=8,rk7=5,rk8=4,rk9=7,rk102; step E1.2 is performed: let R be 1+1/N be 1.1, calculate individual ch1Probability of being selectedSame principle A2=0.092,A3=0.063,A4=0.122,A5=0.069,A6=0.076,A7=0.101,A8=0.111,A9=0.083,A100.135; step E1.3 is performed: calculating cumulative probability Step E1.4 is performed: randomly generating a random number λ of [0,1 ]1It is 0.812 becauseThus selecting ch9(ii) a Step E1.5 is performed: randomly generating a random number λ of [0,1 ]2It is 0.397, due toAnd 4 ≠ 9, so ch is selected4Go to step E1.6; step E1.6 is performed: obtaining two different individuals ch9And ch4As a father, the individual selection operation ends; and due to rs9=2873.16>rs42061.80 due to its root causeThis selects ch4As the father 1, ch9As father 2, namely: ch (channel)p1=ch4={(6,9),(10),(3),(1,4,11,12),(2,7),(5,8,13,14,15)},chp2=ch9{ (4), (7), (9), (2,6,8,10,12), (3,14), (1,5,11,13,15) }; order to Order toδ=1;
Step E2 is executed: if δ 1 ≦ I ≦ 15, go to step E3;
step E3 is executed: generating a random number between [0,1), which is 0.03, since 0.03. ltoreq. pbIf 0.7, go to step E4;
step E4 is executed: due to the fact thatIn (1),the condition that the task numbered as its first element has no parent task or that its parent task has been scheduled is satisfied, and thusRandomly select one of which isThus, fromTaking out the first element 2, adding it toAt the tail, i.e. And fromIn deletion 2, i.e.Go to step E2, if δ + 1+ 2;
step E2 is executed: since δ 2 ≦ I ≦ 15, go to step E3;
step E3 is executed: generate a random number between [0,1), which is 0.94, since 0.94>pbIf 0.7, go to step E5;
step E5 is executed: due to the fact thatIn (1),the condition that the task numbered as its first element has no parent task or that its parent task has been scheduled is satisfied, and thusRandomly select one of which isThus, fromTaking out the first element 1, and adding it toAt the tail, i.e. And fromIn deletion of 1, i.e.Go to step E2, δ +1 — 2+1 — 3;
step E2 is executed: if δ is 3 ≦ I ≦ 15, go to step E3;
step E3 is executed: generating a random number between [0,1), which is 0.17, since 0.17 ≦ pbIf 0.7, go to step E4;
step E4 is executed: due to the fact thatIn (1),the condition that the task numbered as its first element has no parent task or that its parent task has been scheduled is satisfied, and thusRandomly select one of which isThus, fromTaking out the first element 3, adding it toAt the tail, i.e.And fromDeletion 3 in (i)Go to step E2, δ +1 — 3+1 — 4;
step E2 is executed: since δ 4 ≦ I ≦ 15, go to step E3;
step E3 is executed: generating a random number between [0,1), which is 0.57, since 0.57 ≦ pbIf 0.7, go to step E4;
step E4 is executed: due to the fact thatIn (1),the condition that the task numbered as its first element has no parent task or that its parent task has been scheduled is satisfied, and thusRandomly select one of which isThus, fromTaking out the first element 4, adding it toAt the tail, i.e. And fromIn deletion 4, i.e.Go to step E2, δ + 1+ 4+ 1+ 5;
step E2 is executed: if δ is 5 ≦ I ≦ 15, go to step E3;
step E3 is executed: generating a random number between [0,1), which is 0.34, since 0.34 ≦ pbIf 0.7, go to step E4;
step E4 is executed: due to the fact thatIn (1),the condition that the task numbered as its first element has no parent task or that its parent task has been scheduled is satisfied, and thusRandomly select one of which isThus, fromTaking out the first element 5, adding it toAt the tail, i.e. And fromDeletion of 5, i.e.Go to step E2, δ + 1+ 5+ 1+ 6;
……
the steps E2 to E5 are repeated until δ ═ 16> I ═ 15, and the process goes to step E6;
step E6 is executed: output sub-body chc{ (9), (7,10), (3), (4,6,11,12), (2,14), (1,5,8,13,15) }, the operation ends;
thus obtaining ch'1=chc={(9),(7,10),(3),(4,6,11,12),(2,14),(1,5,8,13,15)};
Similarly, the remaining individuals in the new population generated by the crossover operation are:
ch′2={(4,15),(5,10),(11),(9,12),(2,1,3,6,7),(8,13,14)};
ch′3={(),(),(3,11),(2,6,7,10,12),(1,8,9),(4,5,13,14,15)};
ch′4={(15),(3,5,7,10),(),(2,8,11,9,12),(1,6),(4,13,14)};
ch′5={(2,4,6),(10),(3),(1,11,9,12),(7),(5,8,13,14,15)};
ch′6={(15),(3,5,7,10),(2),(8,9,12),(1,6),(4,11,13,14)};
ch′7={(6,9),(),(3,11),(4,10,12),(1,2,7,8),(5,13,14,15)};
ch′8={(1),(3,7),(9),(2,6,11,10,12),(8),(4,5,13,14,15)};
ch′9={(1,4),(3,5,10),(2),(6,7,9,11),(8,12),(13,14,15)};
ch′10={(2,6,9),(10),(3),(1,4,11,12),(7),(5,8,13,14,15)};
the new population thus generated is NP ═ ch'1,ch′2,ch′3,ch′4,ch′5,ch′6,ch′7,ch′8,ch′9,ch′10}。
And 7, executing the step: performing mutation operation on each individual in the new population;
taking the rate of variation pm=0.2;
The specific implementation process of performing mutation operation on the new population is as follows:
for ch'1={(9),(7,10),(3),(4,6,11,12),(2,14),(1,5,8,13,15)};
Step F1 is performed: randomly generating a random number λ of [0,1), which is 0.54, since λ is 0.54>pmIf 0.2, go to step F5;
step F5 is performed: finishing individual variation operation;
for ch'2={(4,15),(5,10),(11),(9,12),(2,1,3,6,7),(8,13,14)};
Step F1 is performed: randomly generating a random number λ of [0,1), which is 0.18, since λ is 0.18<pmIf 0.2, go to step F2;
step F2 is performed: randomly select a task number, which is 2, from the individuals ch'2Deletion of the Gene having a deletion number of 2, i.e., deletion of Gene g5,1Then ch'2={(4,15),(5,10),(11),(9,12),(1,3,6,7),(8,13,14)};
Step F3 is performed: from virtual machine set VM2={vm1,vm3,vm4,vm5Randomly selecting a virtual machine which is a virtual machine 1 again;
step F4 is performed: due to (g)1,1,g1,2) Since the ancestral task number of task 2 does not exist in (4,15) and the descendant task number of task 2 exists in (g)1,1,g1,2) Looking for the first descendant task number from front to back in (4,15), which is g1,215 at g1,2Previously randomly finding a position which is g1,2Insertion of 2, i.e. g1,2=2,g1,3=15;
Step F5 is performed: finishing individual variation operation;
thus, the mutated individuals become: ch'2={(4,2,15),(5,10),(11),(9,12),(1,3,6,7),(8,13,14)};
Similarly, for other individuals in the new population, the variation becomes:
ch′3={(),(),(3,11),(2,6,7,10,12),(1,8,9),(4,5,13,14,15)};
ch′4={(15),(3,5,7,10),(),(2,8,11,9,12),(1,6),(4,13,14)};
ch′5={(2,4,6),(10),(3),(1,11,9,12),(7),(5,8,13,14,15)};
ch′6={(15),(3,5,7,10),(2),(8,9,12),(1,6),(4,11,13,14)};
ch′7={(6,9),(),(3,11),(4,10,12),(1,2,7,8),(5,13,14,15)};
ch′8={(1),(3,7),(9),(2,6,11,10,12),(8),(4,5,13,14,15)};
ch′9={(1,4),(3,10),(2),(6,7,9,11),(8,12),(5,13,14,15)};
ch′10={(2,6,9),(),(3),(1,4,11,10,12),(7),(5,8,13,14,15)}。
and step 8 is executed: improving all individuals in the new population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
all individuals in the new population become, after improvement by the FBI & D method:
ch′1={(9),(7,10),(3),(4,6,11,12),(2,14),(1,5,8,13,15)};
ch′2={(2,4,15),(5,10),(11),(9,12),(1,3,6,7),(8,13,14)};
ch′3={(),(),(3,11),(2,6,7,10,12),(1,8,9),(4,5,13,14,15)};
ch′4={(15),(3,5,7,10),(),(2,8,11,9,12),(1,6),(4,13,14)};
ch′5={(2,4,6),(10),(3),(1,11,9,12),(7),(5,8,13,14,15)};
ch′6={(15),(3,5,7,10),(2),(8,9,12),(1,6),(4,11,13,14)};
ch′7={(6,9),(),(3,11),(4,10,12),(1,2,7,8),(5,13,14,15)};
ch′8={(1),(3,7),(9),(2,6,11,10,12),(8),(4,5,13,14,15)};
ch′9={(1,4),(3,10),(2),(6,7,9,11),(8,12),(5,13,14,15)};
ch′10={(2,6,9),(),(3),(1,4,11,10,12),(7),(5,8,13,14,15)};
its fitness value, i.e. workflow response time: rs'1=3491.08,rs′2=2193.72,rs′3=1249.32,rs′4=2173.32,rs′5=2329.24,rs′6=2189.68,rs′7=1907.4,rs′8=1919.64,rs′9=2515.56,rs′10=2055.00;
All individuals in the new population become, after improvement by the LDI method:
ch′1={(9),(7,10),(3),(4,6,11,12),(2,14),(1,5,8,13,15)};
ch′2={(2,4),(5,10),(11),(9,12),(1,3,6,7),(8,13,14,15)};
ch′3={(4),(),(3,11),(2,6,7,10,12),(1,8,9),(5,13,14,15)};
ch′4={(15),(5,7,10),(3),(2,8,11,9,12),(1,6),(4,13,14)};
ch′5={(2,6),(10),(3),(1,11,9,12),(4,7),(5,8,13,14,15)};
ch′6={(15),(3,5,7,10),(2),(8,9,12),(1,6),(4,11,13,14)};
ch′7={(6,9),(),(3,11),(4,10,12),(1,2,7,8),(5,13,14,15)};
ch′8={(1),(3),(9),(2,6,11,10,12),(7,8),(4,5,13,14,15)};
ch′9={(1,4),(3,10),(2),(6,7,11),(8,9,12),(5,13,14,15)};
ch′10={(2,6,9),(),(3),(1,4,11,10,12),(7),(5,8,13,14,15)};
its fitness value, i.e. workflow response time: rs'1=3491.08,rs′2=2117.72,rs′3=1178.60,rs′4=1949.84,rs′5=1893.64,rs′6=2189.68,rs′7=1907.4,rs′8=1899.72,rs′9=2034.64,rs′10=2055.00;
And step 9 is executed: selecting N different individuals from the current generation population and the new population from the superior to the inferior to form a new current generation population, and turning to the step 5;
selecting from good to bad according to the fitness valueCh of generation group1、ch4、ch10And ch 'of the New population'3、ch′4、ch′5、ch′7、ch′8、ch′9、ch′10Forming the next generation of population, i.e. GP ═ ch1,ch4,ch10,ch′3,ch′4,ch′5,ch′7,ch′8,ch′9,ch′10};
Let CP be GP, then all individuals of the contemporary population are:
ch1={(),(),(3,11),(2,10,12),(1,6,4,7,8,9),(5,13,14,15)};
ch2={(6,9),(10),(3),(1,4,11,12),(2,7),(5,8,13,14,15)};
ch3={(1,5),(3),(2),(6,7,11,10,12),(8,9),(4,13,14,15)};
ch4={(4),(),(3,11),(2,6,7,10,12),(1,8,9),(5,13,14,15)};
ch5={(15),(5,7,10),(3),(2,8,11,9,12),(1,6),(4,13,14)};
ch6={(2,6),(10),(3),(1,11,9,12),(4,7),(5,8,13,14,15)};
ch7={(6,9),(),(3,11),(4,10,12),(1,2,7,8),(5,13,14,15)};
ch8={(1),(3),(9),(2,6,11,10,12),(7,8),(4,5,13,14,15)};
ch9={(1,4),(3,10),(2),(6,7,11),(8,9,12),(5,13,14,15)};
ch10={(2,6,9),(),(3),(1,4,11,10,12),(7),(5,8,13,14,15)};
the fitness values, i.e. the workflow response times, are respectively: rs1=1098.16,rs2=2061.80,rs3=1887.12,rs4=1178.60,rs5=1949.84,rs6=1893.64,rs7=1907.40,rs8=1899.72,rs9=2034.64,rs10=2055.00;
Go to step 5.
……
Thus, the steps 5 to 9 are continuously and repeatedly executed until the optimal individual continuously iterates for 20 generations without improvement, and the contemporary population becomes:
ch1={(),(),(3,6,11),(2,10,12),(1,4,7,9),(5,8,13,14,15)};
ch2={(),(),(3,6,11),(2,10,12),(1,4,7,8,9),(5,13,14,15)};
ch3={(4),(),(3,11),(2,10,12),(1,6,7,8,9),(5,13,14,15)};
ch4={(),(),(3,11),(2,4,7,10,12),(1,6,8,9),(5,13,14,15)};
ch5={(),(),(3,11),(2,4,10,12),(1,6,7,8,9),(5,13,14,15)};
ch6={(),(),(3,11),(2,4,10,12),(1,6,7,9),(5,8,13,14,15)};
ch7={(),(),(3,11),(2,4,8,10,12),(1,6,7,9),(5,13,14,15)};
ch8={(),(),(3,11),(2,10,12),(1,6,4,7,9),(5,8,13,14,15)};
ch9={(),(),(3,11),(2,8,10,12),(1,6,4,7,9),(5,13,14,15)};
ch10={(),(),(3,6),(2,10,11,12),(4,7,8,9),(1,5,13,14,15)};
the fitness values, i.e. the workflow response times, are respectively: rs1=1104.80,rs2=1103.60,rs3=1113.52,rs4=1107.44,rs5=1108.40,rs6=1109.6,rs7=1110.68,rs8=1099.36,rs9=1100.44,rs10=1018.08;
Go to step 10.
Executing the step 10: outputting the optimal individuals in the contemporary population, wherein the corresponding scheduling scheme is an optimal scheme;
the best individual in the contemporary population is ch10{ (), (), (3,6), (2,10,11,12), (4,7,8,9), (1,5,13,14,15) }, workflow response time is: rs101018.08, the corresponding schedule optimization scheme is shown in table 3.
Scheduling order | Task numbering | Starting time | Execution time | End time | Virtual machine numbering |
1 | 3 | 0.00 | 182.16 | 182.16 | 3 |
2 | 2 | 0.00 | 185.16 | 185.16 | 4 |
3 | 1 | 0.00 | 129.12 | 129.12 | 6 |
4 | 6 | 182.16 | 269.16 | 451.32 | 3 |
5 | 4 | 129.12 | 193.12 | 322.24 | 5 |
6 | 5 | 185.16 | 254.32 | 439.48 | 6 |
7 | 7 | 451.32 | 11.76 | 463.08 | 5 |
8 | 8 | 463.08 | 2.96 | 466.04 | 5 |
9 | 10 | 466.04 | 60.64 | 526.68 | 4 |
10 | 11 | 526.68 | 259.44 | 786.12 | 4 |
11 | 9 | 466.04 | 196.40 | 662.44 | 5 |
12 | 12 | 786.12 | 201.68 | 987.80 | 4 |
13 | 13 | 987.80 | 9.28 | 997.08 | 6 |
14 | 14 | 997.08 | 10.00 | 1007.08 | 6 |
15 | 15 | 1007.08 | 2.60 | 1009.68 | 6 |
TABLE 3
The above embodiments are only preferred embodiments of the present invention, and are not intended to limit the technical solutions of the present invention, so long as the technical solutions can be realized on the basis of the above embodiments without creative efforts, which should be considered to fall within the protection scope of the patent of the present invention.
Claims (4)
1. A cloud workflow scheduling optimization method based on a two-dimensional coding genetic algorithm is characterized by comprising the following steps: the method comprises the following steps: step 1: formalizing a scheduling problem, and acquiring information required by scheduling optimization;
get task set T ═ T1,t2,…,tIWhere I is the number of tasks, tiRepresenting a task i, namely a task with the number i;
acquiring a time sequence relation between tasks: parent task set PR of task iiSubstask set SC for task iiWherein I is 1,2 …, I;
acquiring task related parameters: length t of task iiLength, i.e. the number of instructions that need to be consumed by a virtual machine when task i is processed, list t of input files that need to be processed when task i is processediIFL, output File List t generated after task i is processedi-OFL, and the size of the file in the file list, I ═ 1,2 …, I; task i is task i+The requirements of the parent task of (2) are: there is a file that is the output file of task i and is also task i+The input file of (a), namely:
obtaining a virtual machine set VM ═ VM in a cloud computing environment1,vm2,…,vmJWhere J is the number of virtual machines, vmjRepresents virtual machine j, i.e., the virtual machine numbered j;
acquiring related parameters of the virtual machine: computing power vm of virtual machine jjPs, bandwidth vm of virtual machine jjBw, wherein J ═ 1,2 …, J;
acquiring a support relationship between the task and the virtual machine: task set T that virtual machine j can handlejWherein J is 1,2 …, J; virtual machine set VM capable of processing task iiWherein I is 1,2 …, I;
step 2: calculating the level value level of the task;
for a starting task i without a parent task, the hierarchy value is:
leveli=1 (1)
the hierarchy values of other tasks are calculated using the following recursive formula:
and step 3: initializing a contemporary population;
initializing a current generation population, wherein the current generation population comprises 1 individual generated by an individual generation method based on HEFT-baseline and the remaining N-1 different individuals generated by an individual random generation method based on a hierarchy, and N is the population scale;
the individuals adopt two-dimensional integer coding, and the method comprises the following steps:wherein g isj,iA number indicating a task assigned to virtual machine j and scheduled i in virtual machine j;is a sequence of task numbers assigned to virtual machine j and satisfies a task timing constraint, IjRepresenting the number of tasks assigned to virtual machine j;
the individual generating method based on HEFT-baseline comprises the following steps:
step A1: make virtual machine available a time period list vatlj={[0,M]}, variable kj1, J-1, 2, …, J, where M is a near infinite number; enabling a task set UT to be processed to be T; let ready times rt of all tasksi=0,i=1,…,I;
Step A2: finding out the task with the minimum level value in the UT, taking out the task with the maximum number of subtasks from the task, and if the task with the maximum number of subtasks is more than one, randomly taking one of the tasks without setting t as ti;
Step A3: make available virtual machine set AVMi=VMiCalculating tiAre respectively allocated to AVMiT after each virtual machine in (1)iCompletion time of (d):
step A3.1: slave AVMiGet one virtual machine out of it, set to vmj;
Step A3.3: in vatljFinding out an idle time period [ v ] from morning to eveningj,υj]Satisfy upsilonj-νj≥eti,jAnd upsilonj-eti,j≥rti;
Step A3.4: calculating tiTo vmjStart time after treatment si,j=max{νj,rtiH, completion time fi,j=si,j+eti,j;
Step A3.5: if AVMiIf not, go to step A3.1, otherwise go to step A4;
step A4: finding earliest achievable t in virtual machine orderiVirtual machine of (2) is not set to vmj(ii) a Order tokj=kj+ 1; handle tiTo vmj:
Step A4.1: let tiStart time s ofi=si,j,tiCompletion time fi=fi,j;
Step A4.3: list of time slots available in virtual machine, vatljDeletion of [ v ]j,υj]V, with insertion interval length greater than 0j,si]And [ fi,υj];
Step A5: if UT is not empty, go to step A2, otherwise go to step A6;
wherein:
is a handle tiTo vmjThe processing needs to obtain the file transfer time of the input file from other virtual machines,
τi,j: is a handle tiTo vmjThe process requires obtaining the file transfer time of the input file from the shared database,
the individual random generation method based on the hierarchy comprises the following steps:
step B1: let UT be T, let k be variablej=1,j=1,2,…,J;
Step B2: randomly fetch a task with the minimum hierarchy value from UT, and set t as ti;
Step B3: slave VMiRandomly selecting one virtual machine in the virtual network, and setting the virtual machine not to be vmj;
Step B5: if UT is not empty, go to step B2; otherwise go to step B6;
and 4, step 4: improving all individuals in the contemporary population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
wherein: rf (radio frequency)iIs the response time of the task i,SFLiis the set of output files that task i outputs to the shared database, i.e.j is the virtual machine number of processing task i, i.e. satisfiesJ of (1);
the smaller the individual fitness value is, the better the individual is;
the FBI & D method comprises the steps of:
step C2: decoding the individual ch by adopting a serial individual decoding method based on an insertion mode to obtain the completion time f of all tasks1,…,fIAnd its workflow response time rs; if rs is less thanGo to step C3, otherwise, go to step C6;
step C3: corresponding gene sequence of each virtual machine j in individual chRearranging according to the task completion time from large to small, J is 1, …, J, forming reverse individuals
Step C4: to pairDecoding by adopting a serial reverse individual decoding method based on an insertion mode to obtain reverse completion time of all tasksAnd its reverse workflow response timeIf it isIf the value is less than rs, go to step C5, otherwise, go to step C6;
step C5: make the opposite direction single bodyThe gene sequence corresponding to each virtual machine j in the databaseRearranging according to the reverse completion time of the task from large to small, wherein J is 1, …, J, forming an individual ch, and turning to the step C2;
step C6: outputting the individual ch and the fitness value thereof, namely the workflow response time rs, and finishing the operation;
the LDI method comprises the following steps:
Step D2: finding out a virtual machine j' with the minimum load; if ld isj′>0, go to step D3, otherwise go to step D4;
step D4: order task set STj′=Tj′Go to step D5;
step D5: if STj′If not, from STj′Sequentially fetching a task i 'with the highest load of the virtual machine j' to go to step D6; otherwise go to step D7;
step D6: in thatSearching the last ancestor task number and the first descendant task number of the task i 'from front to back, and if both the ancestor task number and the first descendant task number are found, randomly searching a position between the last ancestor task number and the first descendant task number to insert the task i'; if the descendant task number does not exist and the ancestor task number exists, randomly finding a position behind the last ancestor task number to insert i'; if the descendant task number exists and the ancestor task number does not exist, randomly finding a position before the first descendant task number and inserting i'; if the descendant task number and the ancestor task number do not exist, randomly finding a position to insert i'; in thatDeleting i' to form new individual, using FBI&D, the method carries out decoding improvement on the new individual, if the new individual is improved, the improved individual is used for replacing the original individual, and the step D7 is carried out; otherwise go to step D5;
step D7: the LDI operation is finished;
the definition of the descendant task and the ancestor task is described as follows: if there is a task sequenceSatisfy the requirement ofIs thatWhere 1 is not more than k<n is thenIs thatThe task of the ancestor of (c),is thatThe descendant task of (2);
and 5: judging whether a termination condition is met, if so, turning to a step 10 after the evolution is finished, otherwise, turning to a step 6;
the termination condition is that the optimal individual is not improved after iteration to a designated generation TG or continuous iteration GG generation;
step 6: carrying out N times of parameterized uniform cross operations based on preference and two-dimensional topological sorting on the contemporary population to form a new population;
the parameterized uniform crossover operation based on preference and two-dimensional topological ordering comprises the following steps:
step E1: randomly selecting two different individuals from the contemporary population as parents by adopting a ranking-based round-robin method, and setting the individuals as parentsAnd chp1Has a fitness value of ch or lessp2Wherein: task number listTask number listJ is 1, …, J, order the task number listMaking a cycle control variable delta equal to 1;
step E2: if δ ≦ I, go to step E3, otherwise go to step E6;
step E3: generating a random number λ ∈ [0,1) if λ<pbGo to step E4, otherwise go to step E5;
step E4: from chp1Randomly selecting one task which is not empty and is numbered as the first element of the task, wherein the parent task does not exist in the task or the parent task is scheduledFromTake out the first element i' and add it toAnd from chp2If i', δ is δ +1, go to step E2;
step E5: from chp2Randomly selecting one task which is not empty and is numbered as the first element of the task, wherein the parent task does not exist in the task or the parent task is scheduledFromTake out the first element i' and add it toAnd from chp1Deleting i ", δ ═ δ +1, go to step E2;
wherein: p is a radical ofbE (0.5,1) is the preference rate;
and 7: performing mutation operation on each individual in the new population;
the mutation operation comprises the following steps:
step F1: randomly generating 1 random number lambda epsilon [0,1) if lambda is less than or equal to pmGo to step F2, otherwise go to step F5;
step F2: randomly selecting a task number i, and deleting a gene with the value of i in an individual;
step F3: slave VMiRandomly selecting a virtual machine again, and setting the virtual machine as a virtual machine j;
step F4: in thatSearching the last ancestor task number and the first descendant task number of the task i from front to back, and if both the last ancestor task number and the first descendant task number are found, randomly finding a position between the last ancestor task number and the first descendant task number to insert the i; if the descendant task number does not exist and the ancestor task number exists, randomly finding a position behind the last ancestor task number to insert i; if the descendant task number exists and the ancestor task number does not exist, randomly finding a position before the first descendant task number to insert i; if the descendant task number and the ancestor task number do not exist, randomly finding a position to insert i;
step F5: finishing individual variation operation;
wherein: p is a radical ofmE [0,1) is the mutation rate;
and 8: improving all individuals in the new population by adopting FBI & D and LDI methods and calculating the fitness value of the individuals;
and step 9: selecting N different individuals from the current generation population and the new population from the superior to the inferior to form a new current generation population, and turning to the step 5;
step 10: and outputting the optimal individuals in the contemporary population, wherein the corresponding scheduling scheme is an optimal scheme.
2. The cloud workflow scheduling optimization method based on the two-dimensional coding genetic algorithm according to claim 1, characterized in that: the serial individual decoding method based on the insertion mode in the step C2 specifically includes the following steps:
step G1: let ready times rt of all tasksi0, I-1, …, I; make all virtual machines available a time period list vatlj={[0,M]And the task number list allocated to the virtual machineWherein M is a number approaching infinity;
step G2: selecting a VTI which is not empty and has no parent task or has the scheduled parent task in the first element according to the numbering sequence of the virtual machinejFrom VTIjTaking out the first element i;
step G3: assigning task i to virtual machine j based on the insertion pattern;
Step G3.2: in vatljFinding out an idle time period [ v ] from morning to eveningj,υj]Satisfies upsilonj-νj≥etiAnd upsilonj-eti≥rti;
Step G3.3: calculating the start time and the completion time of task i: si=max{νj,rti},fi=si+eti(ii) a Updating the Ready time of a subtask of task i
Step G3.4: in vatljDeletion of [ v ]j,υj]V, with insertion interval length greater than 0j,si]And [ fi,υj];
Step G4: if VTI1,…,VTIJIf not, go to step G2, otherwise, go to step G5;
step G5: obtain start and completion times for all tasks: si、fiI1, …, I, calculating a fitness value; the operation is ended.
3. The cloud workflow scheduling optimization method based on the two-dimensional coding genetic algorithm according to claim 1, characterized in that: the specific steps of the serial reverse individual decoding method based on the insertion mode in step C4 are as follows:
step H1: make reverse ready time of all tasksWherein: i is 1, …, and I, j is the virtual machine number that processes task I, i.e., satisfiesJ of (1); make virtual machine available a time period list vatlj={[0,M]And the task number list allocated to the virtual machineWherein M is a number approaching infinity;
step H2: selecting a VTI which is not empty and has no subtask numbered first element or has all subtasks scheduled according to the numbering sequence of the virtual machinejFrom VTIjTaking out the first element i;
step H3: assigning task i to virtual machine j based on insertion patterns:
Step H3.2: in vatljFinding out an idle time period [ v ] from morning to eveningj,υj]Satisfy upsilonj-νj≥etiAnd
step H3.3: calculating a reverse start time for task iReverse completion timeUpdating the Ready time of the parent task of task i
Step H3.4: list of time slots available in virtual machine, vatljDeletion of [ v ]j,υj]With an insertion interval length greater than 0And
step H4: if VTI1,…,VTIJIf not, go to step H2, otherwise, go to step H5;
4. The cloud workflow scheduling optimization method based on the two-dimensional coding genetic algorithm according to claim 1, characterized in that: the specific steps of randomly selecting two different individuals from the contemporary population as parents based on the ranking round-robin in the step E1 are as follows:
step E1.1: sequencing the individuals in the contemporary population from good to bad, namely, the fitness value is from small to large, and obtaining the sequencing value rk of the individual nnN is 1, …, N, where the first row takes 1, the second row takes 2, and so on, and the last row takes N;
step E1.2: calculating the probability that the individual n is selectedWherein R is>1 is the discrimination coefficient;
step E1.5: generating a random number lambda2E [0,1) ifAnd n '≠ n, then individual n' is selected, go to step E1.6, otherwise go to step E1.5;
step E1.6: two different individuals n and n' are obtained as parents and the individual selection operation ends.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911261543.8A CN111078381A (en) | 2019-12-10 | 2019-12-10 | Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911261543.8A CN111078381A (en) | 2019-12-10 | 2019-12-10 | Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111078381A true CN111078381A (en) | 2020-04-28 |
Family
ID=70313656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911261543.8A Withdrawn CN111078381A (en) | 2019-12-10 | 2019-12-10 | Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078381A (en) |
-
2019
- 2019-12-10 CN CN201911261543.8A patent/CN111078381A/en not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109561148B (en) | Distributed task scheduling method based on directed acyclic graph in edge computing network | |
Shen et al. | Mathematical modeling and multi-objective evolutionary algorithms applied to dynamic flexible job shop scheduling problems | |
US20180357610A1 (en) | Method and system for collaborative scheduling of production and transportation based on shuffled frog leaping and path relinking algorithms | |
CN110928648B (en) | Heuristic and intelligent computing-fused cloud workflow segmentation online scheduling optimization method | |
CN110780985A (en) | Parallel task scheduling method and device with limited time | |
CN105094970B (en) | The method of more times scheduling models of task can be divided under a kind of solution distributed system | |
CN111090510A (en) | Two-stage cloud workflow scheduling optimization method based on hybrid heuristic algorithm and genetic algorithm | |
CN111008745A (en) | Multi-mode resource-limited project scheduling optimization method based on hybrid heuristic and intelligent algorithms | |
CN111026534B (en) | Workflow execution optimization method based on multiple group genetic algorithms in cloud computing environment | |
CN110991917B (en) | Multi-mode resource-limited project scheduling optimization method adopting two-stage genetic algorithm | |
CN111126800B (en) | Multi-mode resource-limited project scheduling method using layered self-adaptive intelligent algorithm | |
CN111078361A (en) | Cloud workflow scheduling optimization method based on distributed estimation algorithm | |
CN110928670B (en) | Workflow optimization method based on partial sequence adaptive genetic algorithm in cloud computing environment | |
CN111078381A (en) | Cloud workflow scheduling optimization method based on two-dimensional coding genetic algorithm | |
CN111047183A (en) | Cloud workflow scheduling optimization method based on layered self-adaptive intelligent computing algorithm | |
CN110928671B (en) | Cloud workflow scheduling optimization method based on hierarchy and load balancing genetic algorithm | |
CN110941487B (en) | Workflow scheduling optimization method based on multi-stage genetic algorithm in cloud computing environment | |
CN110968428A (en) | Cloud workflow virtual machine configuration and task scheduling collaborative optimization method | |
CN110928669B (en) | Energy consumption perception cloud workflow scheduling optimization method based on multi-population genetic algorithm | |
CN110990125A (en) | Cloud workflow scheduling optimization method using two-dimensional two-stage intelligent computing algorithm | |
CN111026506A (en) | Cloud workflow scheduling optimization method adopting multi-population coevolution genetic algorithm | |
CN111027856B (en) | Multimode resource-constrained project scheduling method based on two-dimensional multi-population genetic algorithm | |
CN110991758A (en) | Cloud workflow scheduling optimization method using two-dimensional fixed-length coding intelligent computing algorithm | |
CN111061563A (en) | Workflow scheduling optimization method based on multi-decoding genetic algorithm in cloud computing environment | |
CN111026533A (en) | Workflow execution optimization method based on distributed estimation algorithm in cloud computing environment |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200428 |
|
WW01 | Invention patent application withdrawn after publication |