CN111026533A - Workflow execution optimization method based on distributed estimation algorithm in cloud computing environment - Google Patents
Workflow execution optimization method based on distributed estimation algorithm in cloud computing environment Download PDFInfo
- Publication number
- CN111026533A CN111026533A CN201911259945.4A CN201911259945A CN111026533A CN 111026533 A CN111026533 A CN 111026533A CN 201911259945 A CN201911259945 A CN 201911259945A CN 111026533 A CN111026533 A CN 111026533A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- task
- time
- machine instance
- individual
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Abstract
The invention discloses a workflow execution optimization method based on a distributed estimation algorithm in a cloud computing environment, which comprises the following steps: acquiring information required by executing optimization; calculating a level value of the task; initializing a contemporary population; decoding the improved contemporary population, calculating the fitness value of the contemporary population, and storing the optimal individuals; constructing an elite population, updating a probability model, sampling the probability model to generate a new contemporary population, and outputting an execution optimization result until a termination condition is met; compared with the traditional method, the method and the strategy are adopted, wherein the method and the strategy are based on topological sorting and continuous biased coding, initial individual generation based on hierarchy and benefit ratio, serial individual decoding based on insertion mode, individual improvement based on forward and backward, new individual generation based on sampling, optimal individual storage and the like, and the optimization capability and the search efficiency of the algorithm are improved.
Description
Technical Field
The invention relates to the field of computer technology, information technology and system engineering, in particular to a cloud workflow execution optimization method, and more particularly relates to a workflow execution optimization method based on a distributed estimation algorithm in a cloud computing environment.
Background
The workflow under the cloud computing environment, called 'cloud workflow' for short, is the integration of cloud computing and workflow related technologies, and is used for scientific computing and cross-organization business cooperation requiring high-efficiency computing performance and large-scale storage support, such as: the system has wide application prospect in the fields of e-commerce, emergency management, supply chain management, health care and the like. In a cloud workflow, there are multiple types of computing resources and multiple tasks, and there are timing constraints between tasks, and a virtual machine is generally responsible for receiving and processing these tasks as a minimum allocation unit of computing resources during execution. Cloud workflow execution or scheduling optimization refers to how to reasonably configure virtual machines under the constraint of meeting the workflow task timing and user requirements, how to allocate workflow tasks to proper virtual machines and determine the execution sequence of the workflow tasks to optimize certain performance indexes such as: cost of implementation, response time, etc. The performance of the whole cloud workflow system is directly determined by cloud workflow execution optimization, and with the rapid increase of process automation requirements in a cloud computing environment, particularly requirements of large-scale assistance and distributed e-commerce and scientific computing applications, the cloud workflow execution optimization has become an important research content.
When cloud workflow execution optimization is performed, the optimization is generally performed only from the perspective of resource configuration or task scheduling, and collaborative optimization research on the resource configuration and the task scheduling is lacked. In fact, the resource allocation and the task scheduling of the cloud workflow are interacted as two optimization stages, the performance index of the cloud workflow execution is influenced together, and the execution performance of the cloud workflow can be effectively improved through collaborative optimization research aiming at the two optimization stages.
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 integrated collaborative optimization method to solve the problems of resource allocation and task scheduling optimization of the cloud workflow and improve the performance of cloud workflow execution.
Disclosure of Invention
Aiming at the defects that the cloud workflow execution optimization is usually performed only from the perspective of resource configuration or task scheduling before, an integrated collaborative optimization method of the resource configuration and the task scheduling is lacked, the cloud workflow execution performance is low and the like, the invention provides the workflow execution optimization method based on the distributed estimation algorithm in the cloud computing environment, and the cloud workflow execution performance is effectively improved.
The technical scheme adopted by the invention for solving the technical problems is as follows: a workflow execution optimization method based on a distributed estimation algorithm in a cloud computing environment comprises the following steps:
step 1: acquiring information required by executing optimization of the cloud workflow;
get task set T ═ T1,…,tI},tiRepresenting a task i, namely a task with the number i; wherein I is the number of tasks to be scheduled;
acquiring a time sequence relation between tasks: parent task set PR of task iiSubstask set SC for task iiWherein I is 1, …, I;
acquiring task related parameters: length len of task iiI.e. the number of instructions that need to be consumed when task i is processed by the virtual machine, the list of input files IFL that is needed when task i is processedi、Output file list OFL generated after task i is processedi、And the size of the file in the file list, wherein: i is 1, …, I; task i is task i+The requirements of the parent task are as follows: there is a file that is the output file of task i and is also task i+The input file of (a), namely:file∈OFLi∧file∈IFLi+;
obtaining a virtual machine type set VM ═ VM in a cloud computing environment1,vm2,…,vmJWhere J is the number of types of virtual machines, vmjRepresenting a j-class virtual machine;
acquiring related parameters of the virtual machine: class jComputing power ps of virtual machinejBandwidth bw of class j virtual machinesjCost per unit time vc for class j virtual machinesjFixed lease-starting cost fc of j-class virtual machinejMinimum billing time unit ut for class j virtual machinesjMinimum lease-on time ft of class j virtual machinej(ii) a The cost of renting a class j virtual machine is calculated as follows:
acquiring cost constraint Budget and time constraint Deadline executed by a workflow in a cloud computing environment; if no cost constraint exists, setting Budget as MBV, and if no time constraint exists, setting Deadline as MDV; wherein: MBV is the upper cost limit, and MDV is the upper time limit;
step 2: calculating a level value of the task;
for a starting task i without a parent task, the hierarchy value is:
lvli=1 (1)
the hierarchy values of other tasks are calculated using the following recursive formula:
and step 3: initializing the contemporary population, and making BtCh equal to Null;
generating 1 individual based on the level and the benefit ratio, and sampling the initial probability model for N-1 times to generate N-1 individuals to form an initial current generation population; wherein N is the population size;
the individual encoding method is as follows: ch ═ gr1,…,grI;gs1,…,gsI;gt1,…,gtIWhere { gr1,…,grIThe scheduling order list is a topological order of task numbers; { gs1,…,gsIIs the virtual machine allocation list, gsiA virtual machine instance number representing an assignment to an ith scheduled task, wherein: gs is1=1,gsi≤max{gs1,…,gsi-1}+1;{gt1,…,gtIIs a list of virtual machine types, gtiType of virtual machine instance denoted i, gt1,…,gtIIs an integer value between 1 and J;
the step of generating 1 individual based on the hierarchy and the benefit ratio comprises the following steps:
step A1: randomly arranging the tasks according to the level values of the tasks from small to large, namely randomly arranging the tasks with the level values of small in front of large and with the same level values to form an individual task scheduling sequence list { gr1,…,grI};
Step A2: generating individual virtual machine allocation list { gs) based on benefit ratio1,…,gsIAnd list of virtual machine types { gt1,…,gtI}; obtaining the execution time and the completion time of all tasks: et ali、fi,i=1,…,I;
Step A3: output an individual ch1={gr1,…,grI;gs1,…,gsI;gt1,…,gtIExecution time and completion time of all tasks: et ali、fiI-1, 2 …, I, and calculating its workflow response time rs1And the operation is finished;
the probability model comprises a task scheduling sequence probability model PMS (g), a virtual machine allocation probability model PMA (g) and a virtual machine type probability model PMT (g);
β thereini,i′(g) Indicating that the task scheduled in the ith' generation is tiThe probability of (a) of (b) being,
α thereini,k(g) Representing the probability of assigning a virtual machine instance numbered k to the ith scheduled task in the g-th generation,
wherein deltak,j(g) Representing the probability that the type of the virtual machine instance with the g generation number k is j;k=1,…,I;
the probability model of the initial task scheduling sequence is as follows:
wherein: STSρ={ti|ξi<ρ≤I-ζiIs a set of tasks, ζ, that can be scheduled for scheduling at the ρ -thiIs the number of descendant tasks of task i, ξiIs the number of ancestor tasks of task i;
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);
the initial virtual machine distribution probability model is as follows:
the initial virtual machine type probability model is as follows:
j is the number of types of virtual machines;
the probability models PMS (g), PMA (g) and PMT (g) are sampled for 1 time to generate 1 individual, and the method comprises the following steps:
step B1: sampling of virtual machine types:
step B1.1: let variable k be 1;
step B1.2: obtaining a probability A that the type of the virtual machine instance numbered k is jk,j=δk,j(g) J is 1, …, J; calculating the cumulative probability:
Step B1.4: let k be k + 1; if k is less than or equal to I, turning to step B1.2, otherwise, obtaining a virtual machine type list, and turning to step B2;
step B2: initializing a system state:
step B2.1: make all virtual machines available a time period list vatlk={[0,∞]},k=1,…,I;
Step B2.2: let ready time rt of taskiTask set P (t) 0i)=PRiI is 1, …, I; order task setThe task set UT is T;
step B3 according to [ β ]1,q(g) … βI,q(g)]TRandomly selecting a task from RT by roulette, not setting ti(ii) a Let grq=i;
Step B4 according to [ α ]q,1(g) … αq,I(g)]Using roulette in [1, MI]Randomly selecting a virtual machine instance number between the two, setting the number as k, and enabling gsqK is; if k is MI, then MI is MI + 1;
step B5: handle tiAssigned to virtual machine instance numbered k:
Step B5.2: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd upsilonk-eti≥rti;
Step B5.3: t is tiStart time s ofi=max{νk,rti},tiEnd time f ofi=si+eti;
Step B5.5: list of time slots available in virtual machine, vatlkDeletion of [ v ]k,υk]V, with insertion interval length greater than 0k,si]And [ fi,υk];
step B6: if RT is not null, then q ═ q +1, go to step B3, otherwise go to step B7;
step B7: obtaining an individual chn={gr1,…,grI;gs1,…,gsI;gt1,…,gtIExecution time and completion time of all tasks: et ali、fiI1, 2 …, I, whose workflow response time rs is calculatednN belongs to {2, …, N }, and the operation is finished; and 4, step 4: employing FBI for each individual in contemporary populations&D, decoding and improving to obtain the workflow execution cost and response time of each individual, and then calculating the relative fitness value of all the infeasible individuals and the absolute fitness value of the feasible individuals; replacing the content stored in BtCh with the optimal individual if BtCh ═ Null or the optimal individual in the contemporary population is better than the individual stored in BtCh;
for each individual ch in the populationn={gr1,…,grI;gs1,…,gsI;gt1,…,gtI1, …, N; the FBI&D comprises the following steps:
Step C1.1: according to task completion time fiRearranging the task scheduling order list from large to small { gr1,…,grISetting the ith gene value in the task scheduling sequence list as the serial number of the task finished by the I-th time, wherein I is 1, … and I; form a
Step C1.2: in order to maintain the validity of the original resource configuration scheme and codes, the virtual machine instance list { gs is adjusted1,…,gsIAnd list of virtual machine types { gt1,…,gtIIs formed by
Step C1.2.1: let variable epsilon be 1 and variable delta be 1; let the flag value flg1=…=flgI0; order tok=max{gs1,…,gsI}+1,…,I;
Step C1.2.2: if flgεIf 0, go to step C1.2.3; otherwise go to step C1.2.5:
step C1.2.3: finding tasksIn { gr1,…,grIThe scheduling order in (1) is not set toIn chnFind out the use number asTask number set of virtual machine instanceIn thatFind out the scheduling sequence set of the corresponding task in ST
step C1.2.5: let epsilon equal to epsilon + 1; if ε ≦ I, go to step C1.2.2, otherwise go to step C2;
step C2: method for decoding reverse individuals by adopting serial reverse individuals based on insertion modeDecoding to obtain the reverse completion time of all tasksAnd its workflow reverse response timeIf it isLess than rsnGo to step C3, otherwise go to step C5;
step C3: form positive individual chn={gr1,…,grI;gs1,…,gsI;gt1,…,gtI}:
Step C3.1: according to task reverse completion timeRearranging task scheduling order list from large to smallSetting the ith gene value in the task scheduling sequence list as the serial number of the last ith completed task, wherein I is 1, … and I; form { gr1,…,grI};
Step C3.2: adjusting virtual machine instance list to maintain original resource configuration scheme and code validityAnd virtual machine type listForm { gs1,…,gsI}、{gt1,…,gtI}:
Step C3.2.1: let variable epsilon be 1 and variable delta be 1; let the flag value flg1=…=flgI0; order to
Step C3.2.2: if flgεIf 0, go to step C3.2.3; otherwise go to step C3.2.5:
step C3.2.3: finding task grεIn thatIn the scheduling order of (1), do not set toIn thatFind out the use number asTask number set of virtual machine instanceIn { gr1,…,grIFinding out the scheduling sequence set SI ═ i | gr of the corresponding task in STi∈ST};
step C3.2.5: let epsilon equal to epsilon + 1; if ε ≦ I, go to step C3.2.2, otherwise go to step C4;
step C4: adopting serial forward individual decoding method based on insertion mode to forward individual chnDecoding is carried out to obtain the completion time f of all tasks1,…,fIAnd its workflow response time rsn(ii) a If rsnIs less thanGo to step C1, otherwise, go to step C5;
step C5: output forward individual chnAnd its workflow response time rsnCalculating its workflow execution cost ctnAnd the operation is finished;
the serial reverse individual decoding method based on the insertion mode is used for decoding reverse individualsThe decoding comprises the following steps:
step D1: make reverse ready time of all tasks Is a taskOutput filesets exported to a shared database, i.e.I is 1, …, I; make virtual machine available a time period list vatlk={[0,∞]},Let the variable ε be 1;
step D3.1: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd
Step D3.4: list of time slots available in virtual machine, vatlkDeletion of [ v ]k,υk]With an insertion interval length greater than 0And
step D4: let epsilon be epsilon +1, if epsilon is less than or equal to I, go to step D2, otherwise step D5;
step D5: obtaining reverse completion times for all tasksI-1, …, I, and its workflow reversal response timeFinishing the operation;
the serial forward individual decoding method based on the insertion mode is used for forward individual chnThe decoding comprises the following steps:
step E1: let ready times rt of all tasksi0, I-1, …, I; let the variable ε be 1; make available time period list of all virtual machine instances vatlk={[0,∞]},k=1,…,max{gs1,…,gsI};
Step E2: selecting the serial number i-grεThe task of (1);
step E3: assigning task i to a number k-gs based on an insertion patternεThe virtual machine instance of (1);
step E3.1: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd upsilonk-eti≥rti;
Step E3.2: calculating the start time s of task ii=max{νk,rtiH, completion time fi=si+eti;
Step E3.4: list of time slots available in virtual machine, vatlkDeletion of [ v ]k,υk]V, with insertion interval length greater than 0k,si]And [ fi,υk];
Step E4: let ε equal to ε +1, if ε ≦ I, go to step E2, otherwise step E5;
step E5: obtaining the end time f of all tasksiI1, …, I, whose workflow response time rs is calculatednAnd the operation is finished;
and 5: if the termination condition is not met, go to step 6; otherwise go to step 8;
the termination condition is that the optimal individuals stored in BtCh are not improved after iteration to a designated generation TG or continuous iteration GG generation;
step 6: constructing an elite population and updating a probability model;
selecting from the best to the bad of the contemporary populationIndividuals as the current generation elite population POPeWherein: n is a radical ofeFor elite population size, reE (0,1) is the elite rate;
the method for updating the probability model comprises the following steps:
marking valueIndividual ch of generationnThe ith scheduled task is distributed to the virtual machine instance with the number of k
Marking valueIndividual ch of generationnThe type of the virtual machine instance with the middle number of k is j
Respectively allocating the updating rates of a probability model, a task scheduling sequence probability model and a virtual machine type probability model to the virtual machine;
and 7: sampling the current probability models PMS (g), PMA (g) and PMT (g) for N times to generate N individuals, forming a new population, and enabling the new population to be a current generation population; turning to step 4;
and 8: if the feasible individuals are stored in the BtCh, outputting the corresponding execution scheme as an optimization scheme; otherwise, there is no feasible implementation.
Further, a specific calculation method of the MBV and MDV is as follows:
Further, in the step a2, an individual virtual machine allocation list { gs is generated based on the benefit ratio1,…,gsIAnd list of virtual machine types { gt1,…,gtIThe concrete steps are as follows:
step A2.1: order virtual machineExample setLet gs1=gs2=…=gsI=0,gt1=gt2=…=gtI0; let ready times rt of all tasks1=rt2=…=rtI0; let the variable ε be 1;
step A2.2: let variable i become grεThe variable K is INS, the variable K is 1, the variable η is 1, the calculation is carried out on the tiThe comprehensive benefit ratio after being respectively allocated to each potential virtual machine instance is as follows:
step A2.2.1: if K is less than or equal to K, go to step A2.2.2, otherwise, go to step A2.2.6;
step A2.2.2: calculating tiExecution time after assignment to virtual machine instance numbered kWherein:is a handle tiThe processing time of the task when the virtual machine instance with the number k is processed, is the processing power of the virtual machine instance numbered k;is a handle tiThe virtual machine instance with the number k needs to obtain the file transfer time of the input file from other virtual machines when processing,
k-is to treatThe number of the virtual machine instance of (c),andis numbered k and k-Bandwidth of the virtual machine instance of (1);is a handle tiThe virtual machine instance with number k needs to obtain the file transfer time of the input file from the shared database when processing,
step A2.2.3: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥eti,kAnd upsilonk-eti,k≥rti;
Step A2.2.4: calculating tiStarting time s after assigning to virtual machine instance numbered ki,k=max{νk,rtiH, completion time fi,k=si,k+eti,k;
Step A2.2.5, calculating the comprehensive benefit ratio ξi,k:
Wherein: theta epsilon [0,1] is a weight coefficient, mu >0 is a coordination coefficient of cost and time,
is tiLease time, lt ', assigned to virtual machine instance numbered k after virtual machine instance numbered k'k=Rnt′k-Hrt′kIs tiNot yet assigned to virtual machine instance numbered kThe lease time of the virtual machine instance numbered k,is tiThe return time of the virtual machine instance with the number of k before the virtual machine instance with the number of k is not distributed;is tiA start lease time for a virtual machine instance numbered k before a virtual machine instance numbered k has not yet been assigned; making k equal to k +1, and going to step a2.2.1;
a2.2.6, if η is not more than J, go to A2.2.7, otherwise go to A2.3;
step A2.2.7: calculating tiExecution time after allocation to a new type η virtual machine instanceWherein: omegai,ηIs a type η virtual machine instance process tiTime of (a), ωi,η=leni/psη;Is a handle tiThe file transfer time allocated to the virtual machine instance of type η that needs to obtain the input file from the other virtual machine when processing,k-is to treatThe virtual machine instance number of (a); tau isi,ηIs a handle tiThe file transfer time allocated to the processing of the type η virtual machine instance required to obtain the input file from the shared database,
step A2.2.8: calculating tiAssigned to this new typeStart time s after virtual machine instance of ηi,K+η=rtiCompletion time fi,K+η=si,K+η+eti,K+η;
Step A2.2.9, calculating the comprehensive benefit ratio ξi,K+η:
WhereinIs tiAfter allocating the new virtual machine instance with type η, the lease time of the new virtual machine instance with type η is reached, so that η is η +1, go to step A2.2.6;
step A2.3 from ξi,1,…,ξi,K+JFind a minimum among them, do not set asIf the subscript valueThen orderOtherwise, let gsε=K+1、Adding a virtual machine instance ins numbered K +1K+1I.e., INS ∪ INSK+1,vatlK+1={[0,∞]};
Step A2.4: change task i to grεAssigning to a virtual machine instance k-gsε:
Step A2.4.3: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd upsilonk-eti≥rti;
Step A2.4.4: in vatlkDeletion of [ v ]k,υk]V, with insertion interval length greater than 0k,si]And [ fi,υk];
Step A2.5: let epsilon equal to epsilon + 1; if epsilon is less than or equal to I, go to step A2.2, otherwise go to step A2.6;
step A2.6: let K be | INS |, if K<I, then I-K random integers between 1 and J are generated, which are not set to: piK+1,……,πI(ii) a Order: gtK+1=πK+1,……,gtI=πI;
Step A2.7: obtaining an individual { gr1,…,grI;gs1,…,gsI;gt1,…,gtIExecution time and completion time of all tasks: et aliAnd fiI is 1,2 …, I, and the operation ends.
Further, for individual chnThe workflow response time rsnAnd an execution cost ctnThe specific calculation method is as follows:
wherein:is the fixed lease start cost for the virtual machine instance numbered k,is the cost per unit time of the virtual machine instance numbered k,is the minimum billing time unit for the virtual machine instance numbered k,is the minimum lease-on time for the virtual machine instance numbered k,is the bandwidth of the virtual machine instance numbered k, ltk=Rntk-HrtkIs the lease time, Hrt, of the virtual machine instance numbered kkThe start lease time of the virtual machine instance numbered k; rntkThe return time of the virtual machine instance with the number of k is obtained; is to completeIf the maximum time at which the file in (1) is output to the corresponding recipient is reachedWithout exporting files to the shared databaseThen the corresponding recipient is processingIf the virtual machine of the subtaskWithout subtasks, i.e.The respective recipient is a shared database, otherwise ifWith both file output to the shared database and subtasksThen the corresponding recipient is processingThe virtual machines and the shared database of the subtasks,
further, for individual ch in the populationnN is 1,2 …, N if ctn≤Budget∨rsnWhen the adaline is not more than the preset value, ch isnAs viable individuals, otherwise chnIs an infeasible individual;
the specific calculation method of the relative fitness value of the infeasible individual is as follows:
the specific calculation method of the absolute fitness value of the feasible individual is as follows: afitn=θ×μ×ctn+(1-θ)×rsn;
Wherein: theta belongs to [0,1] and is a weight coefficient, and mu is a coordination coefficient of cost and time;
when the individual quality is compared, the feasible individual is superior to the infeasible individual; for all feasible individuals, the smaller the absolute fitness value is, the better the individual is; for all infeasible individuals, the smaller the relative fitness value, the better the individual.
Further, in the step B3, the sequence is according to [ β ]1,q(g) … βI,q(g)]TThe specific steps of selecting a task from the RT using roulette are as follows:
step B3.3: generating 1 random number λ ∈ [0,1) ifThen t is selectediAnd the task selection operation is ended.
Further, in the step B4, the sequence is according to [ α ]q,1(g) … αq,I(g)]Using roulette in [1, MI]The specific steps of randomly selecting a virtual machine instance number are as follows:
step B4.1: calculate the probability that the various possible numbers are chosen: a. thek=αq,k(g),k=1,…,MI-1;
step B4.3: generating 1 random number λ ∈ [0,1) ifThen number k is selected and the virtual machine instance numbering operation ends.
The invention has the beneficial effects that:
(1) compared with the existing workflow execution or scheduling optimization method in the cloud computing environment, the method provided by the invention considers resource allocation and task scheduling at the same time, and realizes integrated collaborative optimization of the resource allocation and the task scheduling.
(2) Compared with a heuristic method, a semi-intelligent calculation method combined with the heuristic method and an existing intelligent calculation method based on hierarchical coding, the method adopts an integer coding method, and any execution scheme can have an individual corresponding to the integer coding method, so that the search space is complete, and the global search can be realized.
(3) Compared with a common coding mode based on priority, the task scheduling sequence list adopts an integer coding method based on topological sorting, and the time sequence relation among tasks is considered, so that the decoding is simpler, the decoding efficiency can be effectively improved, and the overall efficiency of the algorithm is further improved.
(4) Compared with a general full-sequence unbiased coding mode, the invention adopts a continuous biased coding mode from small to large according to the task scheduling sequence to the virtual machine instance list, effectively reduces the coding search space on the premise of ensuring the completeness of the search space, and further improves the overall efficiency of the algorithm.
(5) 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.
(6) Compared with the common one-way decoding method, the forward and backward individual decoding and improvement strategy FBI & D adopted by the design of the invention enhances the neighborhood optimizing capability of the individual, thereby improving the optimizing capability and the searching efficiency of the whole algorithm.
(7) The invention adopts the optimal individual storage strategy, can ensure that the optimal individual is not damaged, and leads the algorithm to be monotonous and convergent.
(8) Compared with the traditional intelligent calculation methods such as GA and the like, the algorithm designed by the invention uses sampling to replace genetic operation to generate new individuals, and the algorithm is more concise.
(9) Compared with the traditional random initialization method, the invention broadcasts an individual generated based on the hierarchy and benefit ratio method in the initialization population, so that the algorithm starts to search at a higher starting point, thereby improving the search efficiency and shortening the search time.
(10) The invention designs a new individual fitness value calculation and quality comparison method for optimizing the workflow execution cost and the response time in a cloud computing environment, and can quickly and conveniently realize the quality comparison among individuals.
(11) The invention designs a universal virtual machine renting charging model which is suitable for charging rules of all IaaS platforms such as Amazon EC2, Microsoft Azure, Google cloud, Array cloud, Tencent cloud and the like.
Drawings
Fig. 1 is a schematic flow chart of a workflow execution optimization method based on a distributed estimation algorithm in a cloud computing environment according to the present invention.
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 that there are 5 virtual machine types vm numbered 1 to 5 under a cloud computing service provider, i.e., a cloud computing environment1、vm2、vm3、vm4、vm5The computing power, bandwidth, unit time cost, fixed lease initiation cost, minimum billing time unit and minimum lease initiation time of various virtual machine types are shown in table 1; the time sequence relationship between one Montage workflow task is shown in FIG. 2, which is composed of 15 tasks t numbered from 1 to 151、t2、…、t15Composition, length of execution of each task, input files required for processing, and processed outputThe names and lengths of the files are shown in table 2.
TABLE 1
TABLE 2
For the above case, as shown in fig. 1, a workflow execution optimization method based on a distributed estimation algorithm in a cloud computing environment includes the following implementation steps:
executing the step 1: acquiring information required by executing optimization of the cloud workflow;
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: len (a)1=42×107MI,IFL1={fd1,fd2},OFL1={f1-1,f1-2};
len2=36×107MI,IFL2={fd1,fd3},OFL2={f2-1,f2-2};len3=63×107MI,IFL3={fd1,fd4},OFL3={f3-1,f3-2};len4=46×107MI,IFL4={fd1,f1-1,f1-2},OFL4={f4-1,f4-2};……;
len15=48×107MI,IFL15={f14-1},OFL15={f15-1};fd1.size=36000MB,fd2.size=43200MB,f1-1.size=39600MB,f1-2.size=39600MB,……,f14-1.size=356000MB,f15-1.size=42000MB;
Acquiring a virtual machine type set in a cloud computing environment: VM ═ VM1,vm2,vm3,vm4,vm5};
Acquiring related parameters of the virtual machine: ps is1=10000MI/s,bw1=200Mbit/s,vc10.5-membered, fc13 yuan, ut1=600s,ft1=7200s;ps2=20000MI/s,bw2=200Mbit/s,vc20.8 membered, fc24 yuan, ut2=600s,ft2=7200s;ps3=40000MI/s,bw3=300Mbit/s,vc31.4-membered, fc36 yuan, ut3=600s,ft3=7200s;ps4=40000MI/s,bw4=400Mbit/s,vc41.7 membered, fc47 yuan, ut4=600s,ft4=7200s;ps5=60000MI/s,bw5=400Mbit/s,vc52.1 yuan, fc58 Yuan, ut5=600s,ft5=7200s;
Acquiring cost constraint Budget and time constraint Deadline of workflow execution under a cloud computing environment, wherein the cost constraint Budget is 1100 yuan, and the time constraint Deadline is 140000 s;
and (3) executing the step 2: calculating a level value of the task;
if task 1, task 2 and task 3 have no parent task, lvl1=lvl2=lvl3=1;
Task 4 has only one parent task 1, thenSimilarly, the hierarchy values of other tasks may be obtained: lvl5=lvl6=2;lvl7=3;lvl8=4;lvl9=lvl10=lvl11=5;lvl12=6;lvl13=7;lvl14=8;lvl15=9。
And (3) executing the step: initializing the contemporary population, and making BtCh equal to Null;
taking the population scale N as 10, the weight coefficient theta as 0.4 and the coordination coefficient mu of the cost and the time as 250;
generating 1 individual based on the hierarchy and the benefit ratio, and then sampling the initial probability model for 9 times to generate 9 individuals to form an initial current generation population;
the specific implementation process for generating 1 individual based on the hierarchy and the benefit ratio is as follows:
step a1 is executed: randomly arranging tasks according to the task hierarchy value from small to large, and randomly arranging the tasks with the hierarchy value of 1, wherein the tasks are 1,3 and 2; randomly arranging tasks with a hierarchy value of 2, wherein the tasks are 6,5 and 4; the task of the level value 3 is only 7; the task with the hierarchy value of 4 is only 8; randomly arranging the tasks with the hierarchy value of 5, wherein the tasks are 9,11 and 10; the task for the hierarchy value 6 is only 12; the task for the level value 7 is only 13; the task of the level value 8 is only 14; the task for the hierarchy value 9 is only 15; sequentially connecting the arrangements according to the hierarchy values from small to large to form an individual task scheduling sequence list {1,3,2,6,5,4,7,8,9,11,10,12,13,14,15 };
step a2 is executed: generating an individual virtual machine allocation list and a virtual machine type list, which are {1,2,3,2,1,3,1,1,1,4,4,4,4,4,4} and {5,5,5,5,3,4,5,4,2,2,1,4,3,2,3}, respectively, based on the benefit ratio; obtaining the execution time and the completion time of all tasks: et ali、fi,i=1,…,15;
I.e. step a 2.1: order virtual machine instance setgs1=…=gs15=0;gt1=…=gt150; ready time rt of all tasks1=…=rt15=0;ε=1;
Step a2.2 is performed: i-grε=gr11, K-INS-0, K-1, η -1, and calculating t1The comprehensive benefit ratio after each potential virtual machine instance is respectively distributed: namely, step A2.2.1 is executed: since k is 1>K is 0, go to A2.2.6, execute step A2.2.6, go to A2.2.7 because η is equal to 1 and J is equal to 5, execute step A2.2.7, calculate t1Execution time after allocation to a new type 1 virtual machine instance
Step a2.2.8 is performed: calculating t1The start time s after the assignment of this new type 1 virtual machine instance1,1=rt10, completion time f1,1=s1,1+et1,145168+ 45168; execution of step A2.2.9: calculating the comprehensive benefit ratio:
step A2.2.6 is executed by proceeding to step A2.2.7 because η ≦ J ≦ 5, and step A2.2.7 is executed by calculating t1Execution time after allocation to a new type 2 virtual machine instanceStep a2.2.8 is performed: calculating t1The start time s after the virtual machine instance of type 2 is allocated to this new instance1,2=rt10, completion time f1,2=s1,2+et1,224168, executing step A2.2.9, calculating comprehensive benefit ratio ξ1,220481.6, η + 2+ 1-3, go to A2.2.6 and … …, and repeatedly execute the steps A2.2.6 to A2.2.9 until η is 6>J is 5, and the obtained comprehensive benefit ratio is ξ1,3=12934.4,ξ1,4=12810.8,ξ1,5=10470.8;
Step A2.3 Slave ξ1,1,…,ξ1,5Find a minimum of ξ1,5(ii) a Since delta is 5>K=0,gs1=0+1=1,gt15-0-5; adding a virtual machine instance ins numbered 11I.e., INS ∪ INS1={ins1},vatl1={[0,∞]};
Step a2.4 is performed: assigning task 1 to virtual machine instance k-gs11: step A2.4.1 is executed: calculating the start time s of a task1=s1,50, end time f1=f1,58584, execution time et1=f1-s18584; execution of step A2.4.2: updating the Ready time rt of a subtask of task 14=max{rt4,f1}=max{0,8584}=8584,rt5=8584,rt6=8584,rt98584; execution of step A2.4.3: in vatl1Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et18584 and ∞ -8584 ≧ rt10; execution of step A2.4.4: in vatl1Deletion of [0, ∞]Insertion interval length of [8584, ∞ ] of more than 0]Then, vall1={[8584,∞]};
Step a2.5 is performed: epsilon is 1+1 is 2; as ∈ 2 ≦ I ≦ 15, go to step a 2.2;
step a2.2 is performed: i-gr23, K-INS-1, K-1, η -1, and calculating t3The comprehensive benefit ratio after each potential virtual machine instance is respectively distributed: namely, step A2.2.1 is executed: if K is 1 ≦ K is 1, go to step A2.2.2; execution of step A2.2.2: calculating t3Execution time after assignment to virtual machine instance number 1Execution of step A2.2.3: in vatl1Finding an idle period [8584, ∞ from the morning to the evening]Satisfies ∞ -8584 ≥ et3,112084 and infinity-12084 ≧ rt30; execution of step A2.2.4: calculating t3Starting time s after virtual machine instance number 1 is assigned3,1Max {8584,0} -8584, completion time f3,1=s3,1+et3,120668; execution of step A2.2.5: calculating the comprehensive benefit ratio: hrt'1=min{s1}=0,Rnt′1=max{8584+8×(39600+39600)/400}=10168;lt′1=Rnt′1-Hrt′1=10168;
A2.2.1; step a2.2.1 is performed: since k is 2>K1, go to A2.2.6, execute step A2.2.6, go to step A2.2.7 because η is equal to 1 and J is equal to 5, execute step A2.2.7, calculate t3Execution time after allocation to a new type 1 virtual machine instanceStep a2.2.8 is performed: calculating t3The start time s after the assignment of this new type 1 virtual machine instance3,2=rt30, completion time f3,2=s3,2+et3,266168, executing A2.2.9 calculating the comprehensive benefit ratio ξ3,247644, η + 1+ 2, go to step A2.2.6, … …, and repeat steps A2.2.6-A2.2.9 to obtain a total benefit ratio of ξ3,3=28084,ξ3,4=17306,ξ3,5=17462,ξ3,6=13802;
Step A2.3 Slave ξ3,1,…,ξ3,6Find a minimum of ξ3,6(ii) a Because delta is 6>K is 1, so gs2=1+1=2,gt26-1-5; adding a virtual machine instance ins numbered 22I.e., INS ∪ INS2={ins1,ins2},vatl2={[0,∞]};
Step a2.4 is performed: assigning task 3 to virtual machine instance k-gs22: step A2.4.1 is executed: calculating the start time of the task: s3=s3,60, end time: f. of3=f3,612084; execution time: et al312084; execution of step A2.4.2: furthermore, the utility modelReady time rt of a subtask of a new task 36=12084,rt1112084; execution of step A2.4.3: in vatl2Finding out an idle time period [0, ∞ from morning to evening]The conditions that ∞ -0 is more than or equal to 12084 and ∞ -12084 is more than or equal to 0 are met; execution of step A2.4.4: in vatl2Deletion of [0, ∞]Insertion interval length of [12084, ∞ ] of more than 0];
Step a2.5 is performed: 2+1 ═ 3; as ∈ 3 ≦ I ≦ 15, go to step a 2.2;
…
step a2.2 to step a2.5 are thus continuously executed until ∈ 16>I is 15, in which case INS is [ INS ]1,ins2,ins3,ins4]The virtual machine allocation list and the virtual machine type list are respectively as follows: {1,2,3,2,1,3,1,1,1,4,4,4,4, 4} and {5,5,5,5,0,0,0,0,0, 0}, go to step a 2.6;
step a2.6 is performed: since K | INS | ≦ 4 ≦ I ≦ 15, 11 random integers between 1 and 5 are generated: pi5、π6、π7、π8、π9、π10、π11、π12、π13、π14、π15It is as follows: 3.4, 5,4,2,1, 4,3,2, 3; order: gt5=π5=3,…,gt15=π15=3;
Step a2.7 is performed: obtaining an individual
{1,3,2,6,5,4,7,8,9,11,10,12,13,14, 15; 1,2,3,2,1,3,1,1, 4,4,4,4,4, 4; 5,5,5,5,3,4,5,4,2,2,1,4,3,2,3} and the execution time and completion time of all tasks thereof: et al1=8584、et2=7584、et3=12084、et4=9970.67、et5=10818.67、et6=10870.67、et7=16186.67、et8=10626.67、et9=13566.67、et10=7445.33、et11=8816、et12=24866.67、et13=8720、et14=11666.67、et15=8000,f1=8584,f2=7584,f3=12084,f4=18554.67,f5=19402.67,f6=22954.67,f7=39141.33,f8=49768,f9=63334.67,f10=66029.33,f11=58584,f12=90896,f13=99616,f14=111282.67,f15When 119282.67, the operation ends.
Step a3 is executed: output an individual ch11,3,2,6,5,4,7,8,9,11,10,12,13,14, 15; 1,2,3,2,1,3,1,1, 4,4,4,4,4, 4; 5,5,5,5,3,4,5,4,2,2,1,4,3,2,3}, and the execution time and completion time of all tasks thereof: et al1=8584、et2=7584、et3=12084、et4=9970.67、et5=10818.67、et6=10870.67、et7=16186.67、et8=10626.67、et9=13566.67、et10=7445.33、et11=8816、et12=24866.67、et13=8720、et14=11666.67、et15=8000,f1=8584,f2=7584,f3=12084,f4=18554.67,f5=19402.67,f6=22954.67,f7=39141.33,f8=49768,f9=63334.67,f10=66029.33,f11=58584,f12=90896,f13=99616,f14=111282.67,f15119282.67; calculating workflow response time: due to the fact thatAnd SFL15={f15-1Get the resultsFinishing the operation;
the specific implementation process of the initialized task scheduling order probability model PMS (1) is as follows:
according to the time sequence relation among tasks, the following steps are known: t is t1Without ancestor task, its descendant task is t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Therefore, ξ1=0,ζ1ξ on the same principle as 122=0,ζ2=10,ξ3=0,ζ3=10,ξ4=1,ζ4=9,ξ5=2,ζ5=9,ξ6=2,ζ6=9,ξ7=6,ζ7=8,ξ8=7,ζ8=7,ξ9=8,ζ9=4,ξ10=8,ζ10=4,ξ11=8,ζ11=4,ξ12=11,ζ12=3,ξ13=12,ζ13=2,ξ14=13,ζ14=1,ξ15=14,ζ15=0;
From ξi,ζiAvailable STS1={t1,t2,t3H, then β1,1(1)=γ1,1/|STS1|=1/3=0.33,β2,1(1)=γ2,1/|STS1|=1/3=0.33,β3,1(1)=1/3=0.33,β4,1(1)=γ4,1/|STS1|=0/3=0.00,β5,1(1)=0/3,……;
From ξi,ζiAvailable STS2={t1,t2,t3,t4H, then β1,2(1)=γ1,2/|STS2|=1/4=0.25,β2,2(1)=γ2,2/|STS2|=1/4=0.25,β3,2(1)=0.25,β4,2(1)=0.25,β5,2(1)=0.00,β6,2(1)=0.00,……;
From ξi,ζiAvailable STS3={t1,t2,t3,t4,t5,t6H, then β1,3(1)=γ1,3/|STS3|=1/6=0.17,β2,3(1)=1/6=0.17,β3,3(1)=1/6=0.17,β4,3(1)=0.17,β5,3(1)=0.17,β6,3(1)=0.17,β7,3(1)=0.00,β8,3(1)=0.00,……;
Similarly, the remaining β can be obtainedi,i′(1) I 1, …,15, i' 4, …,15, the final product can be:
the virtual machine assignment probability model PMA (1) is initialized as follows:
the process of initializing the virtual machine type probability model PMT (1) is as follows:
δ1,1(1)=1/5=0.2,δ1,2(1)=1/5=0.2,…,δ1,5(1)=1/5=0.2;
δ2,1(1)=1/5=0.2,δ2,2(1)=1/5=0.2,…,δ2,5(1)=1/5=0.2;
in the same way, the residual delta can be obtainedi,k(1) I-3, …,15, k-1, …,5, ultimately yields:
the concrete implementation process of generating 1 individual by sampling probability models PMS (1), PMA (1) and PMT (1) for 1 time is as follows:
step B1 is executed: sampling of virtual machine types: namely, step B1.1 is executed: let k equal to 1; step B1.2 is performed: obtaining probabilities that the type of virtual machine instance with the number k ═ 1 is 1,2,3,4,5 respectively: a. the1,1=δ1,1(1)=0.2、A1,2=0.2、A1,3=0.2、A1,4=0.2、A1,50.2; calculating the cumulative probability: in the same way, the method for preparing the composite material,step B1.3 is performed: 1 random number is generated, which is λ 0.69, sinceSo type 4 is selected, i.e. command14; step B1.4 is executed: k is 1+1 is 2; since k is 2 ≤ I is 15, go to step B1.2; step B1.2 is performed: obtaining probabilities that the type of virtual machine instance with the number k-2 is 1,2,3,4,5, respectively: a. the2,1=δ2,1(1)=0.2、A2,2=0.2、A2,3=0.2、A2,4=0.2、A2,50.2; calculating the cumulative probability: step B1.3 is performed: 1 random number is generated, which is λ 0.56, sinceSo type 3 is selected, i.e. command23; step B1.4 is executed: k is 2+1 is 3; since k is 3 ≤ I is 15, go to step B1.2; ….; this is repeated from step B1.2 to step B1.4 until k is 16>Obtaining a virtual machine type list {4,3,1,3,5,4,5,1,3,5,1,1,5,3,3 }; go to step B2;
step B2 is executed: initializing a system state: i.e. step B2.1: make all virtual machines available a time period list vatl1={[0,∞]},vatl2={[0,∞]},……,vatl15={[0,∞]}; and B2.2: let ready times rt of all tasks1=0,rt2=0,……,rt15=0;P(t4)={t1},P(t5)={t1,t2},P(t6)={t1,t3},P(t7)={t4,t5,t6},P(t8)={t7},P(t9)={t1,t8},P(t10)={t2,t8},P(t11)={t3,t8},P(t12)={t9,t10,t11},P(t13)={t12},P(t14)={t13},P(t15)={t14};UT=T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}; and step B2.3 is executed: in UTT of1、t2、t3Moving to RT, RT ═ t1,t2,t3},UT={t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};q=1,MI=1;
Step B3 is performed according to [ β ]1,1(1) … β15,1(1)]TFrom RT to t using roulette1,t2,t3Randomly taking out a task, namely executing the step B3.1: calculating the probability of each task being selected in the RT:
in the same way, A2=0.33、A3=0.33;And step B3.2 is executed: calculating the cumulative probability:step B3.3 is performed: generate 1 random number, which is λ 0.84, becauseThus selecting t3The task selection operation is finished; let gr1=3;
Step B4 is performed according to [ α ]1,1(1) … α1,15(1)]Using roulette in [1, 1]]Randomly selects a virtual machine instance number between which is k 1, and makes gsq=gs1K is 1; since k is 1 ═ MI, then MI ═ MI +1 ═ 2;
step B5 is executed: handle t3To the virtual machine instance numbered 1: i.e. step B5.1: calculating t3Execution time ofAnd B5.2: in vatl1Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et317334 and ∞ -17334 ≧ rt30; and executing the step B5.3: t is t3Start time s of3=max{0,0}=0,t3End time f of3=s3+et317334; and executing the step B5.4: updating t3Rt of the subtask of (2)6=max{rt6,f3}=17334,rt1117334; and executing the step B5.5: list of time slots available in virtual machine, vatl1Deletion of [0, ∞]Insertion interval length of [17334, ∞ ] greater than 0](ii) a And step B5.6 is executed: at P (t)6)、P(t11) Deletion of t3Then P (t)6)={t1},P(t11)={t8}; deleting t in RT3,RT={t1,t2}; step B5.7 is performed: since UT is t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Is absent inSo RT, UT are not changed;
step B6 is executed: since RT ═ t1,t2Q is not null, so q + 1+ 2, go to step B3;
step B3 is performed according to [ β ]1,2(1) … β15,2(1)]TFrom RT to t using roulette1,t2Randomly choose a task, which is t2Let gr be2=2;
Step B4 is performed according to [ α ]2,1(1) … α2,15(1)]Using roulette in [1,2 ]]Randomly selecting a virtual machine instance number, namely executing the step B4.1: calculate the probability that the various possible numbers are chosen: a. the1=α2,1(1)=0.07,A2=1-A10.93; and step B4.2 is executed: calculating the cumulative probability:and executing the step B4.3: 1 random number λ is generated to be 0.24, sinceTherefore, the number 2 is selected, and the virtual machine instance number selection operation is finished; let gs22; since 2 ═ MI, then MI ═ MI +1 ═ 3;
step B5 is executed: handle t2To virtual machine instance number 2: i.e. step B5.1: calculating t2Execution time et of211112; and B5.2: in vatl2Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et211112 and ∞ -11112 ≧ rt20; and executing the step B5.3: t is t2Start time s of2=0,t2End time f of2=s2+et211112; and executing the step B5.4: updating t2Rt of the subtask of (2)5=11112,rt1011112; and executing the step B5.5: listing time periods available in virtual machinesvatl2Deletion of [0, ∞][11112, ∞ with an insertion interval length greater than 0](ii) a And step B5.6 is executed: at P (t)5)、P(t10) Deletion of t2Deleting t in RT2Then RT ═ t1}; step B5.7 is performed: since UT is t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15Is absent inSo RT, UT are not changed;
step B6 is executed: since RT ═ t1Q is not null, so q + 2+1 is 3, go to step B3;
……
the steps B3 to B6 are repeatedly executed until RT is empty, and then the step B7 is executed;
step B7 is executed: obtaining an individual
ch21, {3,2,1,5,4,6,7,8,11,10,9,12,13,14, 15; 1,2,3,4,5,5,2,2,4,1,2,4,2,5, 1; 4,3,1,3,5,4,5,1,3,5,1,1,5,3,3} and the execution time and completion time of all tasks thereof: et al1=45168、et2=11112、et3=17334、et4=11554.67、et5=19004、et6=13990.67、et7=36160、et8=15780、et9=23518、et10=10816、et11=12888、et12=43140、et13=15520、et14=30866.67、et15=19120,f1=45168,f2=11112,f3=17334,f4=56722.67,f5=64172,f6=70713.33,f7=106873.33,f8=122653.33,f9=146171.33,f10=133469.33,f11=135541.33,f12=189311.33,f13=204831.33,f14=235698,f15254818; calculate its workflow response time rs2255658, the operation ends;
similarly, other individuals in the population are generated by sampling the initial probability model as follows:
ch3={3,1,4,2,5,6,7,8,10,9,11,12,13,14,15;1,1,1,1,2,2,2,3,2,4,3,4,5,2,5;4,2,4,2,2,4,3,3,5,1,2,5,3,1,4}
ch4={2,3,1,6,4,5,7,8,10,11,9,12,13,14,15;1,2,3,1,4,5,6,7,8,9,9,2,4,1,10;5,5,2,1,5,3,4,1,4,2,5,3,1,2,1}
ch5={1,2,3,5,4,6,7,8,9,11,10,12,13,14,15;1,2,3,2,4,5,3,6,1,7,2,2,8,3,6;4,4,2,4,5,2,3,5,4,2,4,4,1,5,1}
ch6={1,2,4,3,5,6,7,8,9,10,11,12,13,14,15;1,1,1,1,2,2,2,1,3,4,3,5,2,6,2;5,4,2,1,3,3,5,3,2,4,5,4,1,1,3}
ch7={1,2,5,4,3,6,7,8,10,9,11,12,13,14,15;1,2,3,4,5,6,3,7,6,8,8,9,2,9,2;2,3,4,3,4,2,2,4,3,1,1,5,2,2,2}
ch8={2,3,1,6,4,5,7,8,10,9,11,12,13,14,15;1,2,3,4,5,6,7,8,9,10,4,5,5,2,7;4,3,5,2,4,3,5,2,2,2,5,3,2,1,4}
ch9={3,2,1,5,4,6,7,8,9,11,10,12,13,14,15;1,2,3,4,2,5,3,5,6,7,7,1,6,8,8;4,4,2,4,1,3,1,3,3,4,1,2,5,1,3}
ch10={3,1,4,2,6,5,7,8,10,11,9,12,13,14,15;1,2,3,4,5,2,3,6,5,7,8,9,10,7,6;5,5,2,1,5,4,4,2,5,1,2,4,4,2,1}
the workflow response time is respectively as follows: rs3=419882,rs4=341793.33,rs5=321114,rs6=293148.67,rs7=284975.33,rs8=296870,rs9=414570.67,rs10=340553.33;
And (4) executing: decoding and improving each individual in the contemporary population by adopting FBI & D to obtain the workflow execution cost and response time of each individual, and then calculating the relative fitness value of all infeasible individuals and the absolute fitness value of feasible individuals; replacing the content stored in BtCh with the optimal individual if BtCh ═ Null or the optimal individual in the contemporary population is better than the individual stored in BtCh;
use of FBI on individuals in contemporary populations&D method modifications, e.g. to ch in subgroup 13={3,1,4,2,5,6,7,8,10,9,11,12,13,14,15;1,1,1,1,2,2,2,3,2,4,3,4,5,2,5;4,2,4,2,2,4,3,3,5,1,2,5,3,1,4}
The execution times of all its tasks have been obtained during the sampling process: et al1=12084、et2=10584、et3=17334、et4=12220、et5=33272、et6=33380、et7=34880、et8=17860、et9=44828、et10=20224、et11=11736、et12=70440、et13=29280、et14=63800、et1538240; and completion time: f. of1=29418,f2=52222,f3=17334,f4=41638,f5=85494,f6=118874,f7=153754,f8=171614,f9=216442,f10=191838,f11=183350,f12=286882,f13=316162,f14=379962,f15418202; using FBI&The improved process of the method D is as follows:
Namely, step C1.1 is executed: according to task completion time fiRearranging the task scheduling sequence list {3,1,4,2,5,6,7,8,10,9,11,12,13,14,15} from large to small, namely setting the ith gene value in the task scheduling sequence list as the ith-last completed task number, wherein i is 1, …, 15; form {15,14,13,12,9,10,11,8,7,6,5,2,4,1,3 };
step C1.2 is performed: in order to maintain the validity of the original resource configuration scheme and the codes, the virtual machine instance list and the virtual machine type list are adjusted: step C1.2.1 is executed: epsilon is 1; δ is 1; flg1=...=flg15=0;k 6 …, 15; execution of step C1.2.2: due to flgε=flg1Go to step C1.2.3, so go to 0: execution of step C1.2.3: find task 15 is in { gr1,…,gr15The scheduling order in (1) }, which is 15, at ch3Find out the usage number gs15The task number set ST of the virtual machine instance of 5 is 13,15, whereFinding out a scheduling sequence set SI (1, 3) of a corresponding task in ST; execution of step C1.2.4: order toflg1=1、flg3=1;δ 1+1 — 2; execution of step C1.2.5: epsilon is 1+1 is 2; if e is 2 ≦ I ≦ 15, go to step C1.2.2; execution of step C1.2.2: due to flgε=flg2Go to step C1.2.3, so go to 0: execution of step C1.2.3: finding tasksIn { gr1,…,gr15The scheduling order in (1) }, which is 14, at ch3Find out the usage number gs14The task number set ST of the virtual machine instance of 2 is 5,6,7,10,14, whereFinding out a scheduling sequence set SI of the corresponding task in ST as {2,6,9,10,11 }; execution of step C1.2.4: order toflg2=1、flg6=1、flg9=1、flg10=1、flg11=1;δ 2+1 — 3; execution of step C1.2.5: epsilon ═2+1 ═ 3; if e is 3 ≦ I ≦ 15, go to step C1.2.2; … …, respectively; the steps C1.2.2 to C1.2.5 are repeated until ∈ 16>Obtaining an adjusted virtual machine instance list {1,2,1,3,3,2,4,4,2,2,2,5,5, 5} and a virtual machine type list: {2,2,2,4,4,4,3,3,5,1,2,5,3,1,4}, which ultimately form an inverted individual
Go to step C2;
step C2 is executed: method for decoding reverse individuals by adopting serial reverse individuals based on insertion modeDecoding is carried out, and reverse completion time of all tasks is obtained: and its workflow reverse response timeDue to the fact thatLess than rs3When the result is 419882, go to step C3;
step C3 is executed: form positive individual ch3:
Step C3.1 is performed: according to task reverse completion timeRearranging the task scheduling order list {15,14,13,12,9,10,11,8,7,6,5,2,4,1,3} from large to small, namely setting the ith gene value in the task scheduling order list to be the penultimate gene valuei number of completed tasks, i ═ 1, …, 15; form {1,2,5,3,6,4,7,8,9,10,11,12,13,14,15 };
step C3.2 is performed: in order to maintain the validity of the original resource configuration scheme and the codes, the virtual machine instance list and the virtual machine type list are adjusted: step C3.2.1 is executed: epsilon is 1; δ is 1; flg1=...=flgI=0;k is 6, …, 15; execution of step C3.2.2: due to flgε=flg1Go to step C3.2.3, so it is 0; execution of step C3.2.3: finding task gr11 is inIn a scheduling order of 14, inFind out the use number asIs given as 1,2,3,4, in { gr1,…,gr15Finding out a scheduling sequence set SI of a corresponding task in ST from {1,2,5,3,6,4,7,8,9,10,11,12,13,14,15} - {1,2,4,6 }; execution of step C3.2.4: let gs1=1、gs2=1、gs4=1、gs6=1,flg1=1、flg2=1、flg4=1、flg6=1;δ 1+1 — 2; execution of step C3.2.5: epsilon is 1+1 is 2; since ∈ 2 ≦ I ≦ 15, go to step C3.2.2; execution of step C3.2.2: due to flgε=flg2Go to step C3.2.5 for 1; execution of step C3.2.5: 2+1 ═ 3; if e is 3 ≦ I ≦ 15, go to step C3.2.2; execution of step C3.2.2: due to flgε=flg3Go to step C3.2.3, so it is 0; execution of step C3.2.3: finding task gr3Is 5 atIn a scheduling order of 11, inFind out the use number asIs given as the task number set ST of the virtual machine instance of (1) {5,6,7,10,14}, in { gr1,…,gr15Finding out a scheduling sequence set SI of a corresponding task in ST from {1,2,5,3,6,4,7,8,9,10,11,12,13,14,15} - {3,5,7,10,14 }; execution of step C3.2.4: let gs3=δ=2、gs5=2、gs7=2、gs10=2、gs14=2,flg3=1、flg5=1、flg7=1、flg10=1、flg14=1;δ 2+1 — 3; execution of step C3.2.5: epsilon is 3+1 is 4; if e is 4 ≦ I ≦ 15, go to step C3.2.2; … …, respectively; the steps C3.2.2 to C3.2.5 are repeated until ∈ 16>Obtaining an adjusted virtual machine instance list (I-15)
{1,1,2,1,2,1,2,3,4,2,3,4,5,2,5} and list of virtual machine types: {4,2,4,2,2,4,3,3,5,1,2,5,3,1,4}, which ultimately form a positive individual
step C4 is executed: adopting serial individual decoding method based on insertion mode to forward individual ch3Decoding is carried out, and the completion time of all tasks is obtained: f. of1=12084,f2=22668,f3=40002,f4=52222,f5=55940,f6=89320,f7=124200,f8=142060,f9=186888,f10=162284,f11=153796,f12=257328,f13=286608,f14=350408,f15388648, and its workflow response time rs3390328; due to rs3390328 equal toSo go to step C5;
step C5 is executed: outputting positive individuals
Therefore, it isFor the same reason, tf2=145324,tf3=146092,tf4=89320,tf5=89320,tf6=89320,tf7=126600,tf8=145324,tf9=230888,tf10=230888,tf11=230888,tf12=261168,tf13=286608,tf14364648; due to the fact thatTherefore, it isRnt1=max{tf1,tf2,tf3,tf4}=146188,Hrt1=min{s1,s2,s3,s4}=0,lt1=Rnt1-Hrt1146188; in a similar way, lt2=341980,lt3=106688,lt4=119108,lt5=133000;
with the above-mentioned individuals
For example, the serial reverse individual decoding method based on the insertion mode is implemented as follows:
step D1 is executed: due to SFL15={f15-1Get the resultsDue to the fact thatTherefore, it isEpsilon is 1; make virtual machine available a time period list vatl1={[0,∞]},vatl2={[0,∞]},……,vatl5={[0,∞]};
step D3 is executed: assignment of tasks 15 to numbers ofThe virtual machine instance of (2): i.e. step D3.1 is performed: in vatl1Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et1538240 andstep D3.2 is performed: calculating the reverse start time of task 15Reverse completion timeStep D3.3 is performed: updating the reverse ready time of the parent task of task 15Step D3.4 is performed: list of time slots available in virtual machine, vatl1Deletion of [0, ∞]Insertion interval length greater than 0 [0,1680]And [39920, ∞];
Step D4 is executed: if e is 1+1 ═ 2, and since e is 2 ≦ I ≦ 15, go to step D2;
step D3 is executed: assignment of tasks 14 to numbers ofThe virtual machine instance of (2): i.e. step D3.1 is performed: in vatl2Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et1463800 andstep D3.2 is performed: calculating the reverse start time of task 14Reverse completion timeStep D3.3 is performed: updating the reverse ready time of the parent task of task 14Step D3.4 is performed: list of time slots available in virtual machine, vatl2Deletion of [0, ∞]Insertion interval length greater than 0 [0,39920]And [103720, ∞];
Step D4 is executed: if e is 2+1 ═ 3, and since e is 3 ≦ I ≦ 15, go to step D2;
……
the steps D2 to D4 are repeated until ∈ 16> I ═ 15, and the process goes to step D5
Step D5 is executed: obtaining reverse completion times for all tasks: and its workflow reverse response timeFinishing the operation;
in the above-mentioned positive direction
executeStep E1: let ready times for all tasks: rt is an integer of1=0,rt2=0,……,rt150; epsilon is 1; let list of available slots for all virtual machine instances: vatl1={[0,∞]},vatl2={[0,∞]},……,vatl5={[0,∞]};
Step E2 is executed: selecting the serial number i-gr11 as a task;
step E3 is executed: assignment of task 1 to a number k-gs based on insertion pattern1A virtual machine instance of 1; i.e. step E3.1 is performed: in vatl1Finding out an idle time period [0, ∞ from morning to evening]Satisfy ∞ -0 ≥ et112084 and infinity-12084 ≧ rt10; step E3.2 is performed: calculating the start time s of task 11Max {0,0}, 0, completion time f1=s1+et112084; step E3.3 is performed: updating the Ready time rt of a subtask of task 14=max{rt4,f1}=12084,rt5=12084,rt6=12084,rt912084; step E3.4 is performed: list of time slots available in virtual machine, vatl1Deletion of [0, ∞]Insertion interval length of [12084, ∞ ] of more than 0];
Step E4 is executed: e, if E is 1+1 ═ 2, and since E is 2 ≦ I ≦ 15, go to step E2;
step E2 is executed: selecting the serial number i-gr2A task of 2;
step E3 is executed: assignment of task 2 to a number k-gs based on the insertion pattern2A virtual machine instance of 1; i.e. step E3.1 is performed: in vatl1Finding an idle period [12084, ∞ from morning to evening]Satisfies ∞ -12084 ≥ et210584 and ∞ -10584 ≧ rt20; step E3.2 is performed: calculating the start time s of task 22Max 12084,0 12084, completion time f2=s2+et222668; step E3.3 is performed: updating the Ready time rt of a subtask of task 25=max{rt5,f2}=max{12084,22668}=22668,rt1022668; step E3.4 is performed: listing time periods available in virtual machinesvatl1Deletion in [12084, ∞]Insertion interval length of more than 0 [22668, ∞];
Step E4 is executed: e, if E is 2+1 ═ 3, and since E is 3 ≦ I ≦ 15, go to step E2;
……
the steps E2 to E4 are repeated until ∈ 16> I ═ 15, and then the process goes to step E5;
step E5 is executed: acquiring the end time of all tasks; f. of1=12084,f2=22668,f3=40002,f4=52222,f5=55940,f6=89320,f7=124200,f8=142060,f9=186888,f10=162284,f11=153796,f12=257328,f13=286608,f14=350408,f15388648, its workflow response time rs is calculated3390328, the operation ends;
individuals in the contemporary population become, after the improvement of the FBI & D method:
ch1={1,3,2,6,5,4,7,8,9,11,10,12,13,14,15;1,2,3,2,1,3,1,1,1,4,4,4,4,4,4;5,5,5,5,3,4,5,4,2,2,1,4,3,2,3}
ch3={3,2,1,5,4,6,7,8,11,10,9,12,13,14,15;1,2,3,4,5,5,2,2,4,1,2,4,2,5,1;4,3,1,3,5,4,5,1,3,5,1,1,5,3,3}
ch3={1,2,5,3,6,4,7,8,9,10,11,12,13,14,15;1,1,2,1,2,1,2,3,4,2,3,4,5,2,5;4,2,4,2,2,4,3,3,5,1,2,5,3,1,4}
ch4={2,3,1,6,4,5,7,8,10,11,9,12,13,14,15;1,2,3,1,4,5,6,7,8,9,9,2,4,1,10;5,5,2,1,5,3,4,1,4,2,5,3,1,2,1}
ch5={1,2,3,5,4,6,7,8,9,11,10,12,13,14,15;1,2,3,2,4,5,3,6,1,7,2,2,8,3,6;4,4,2,4,5,2,3,5,4,2,4,4,1,5,1}
ch6={1,2,5,3,6,4,7,8,9,10,11,12,13,14,15;1,1,2,1,2,1,2,1,3,4,3,5,2,6,2;5,4,2,1,3,3,5,3,2,4,5,4,1,1,3}
ch7={1,2,5,4,3,6,7,8,10,9,11,12,13,14,15;1,2,3,4,5,6,3,7,6,8,8,9,2,9,2;2,3,4,3,4,2,2,4,3,1,1,5,2,2,2}
ch8={2,3,1,6,4,5,7,8,10,9,11,12,13,14,15;1,2,3,4,5,6,7,8,9,10,4,5,5,2,7;4,3,5,2,4,3,5,2,2,2,5,3,2,1,4}
ch9={3,2,1,5,4,6,7,8,9,11,10,12,13,14,15;1,2,3,4,2,5,3,5,6,7,7,1,6,8,8;4,4,2,4,1,3,1,3,3,4,1,2,5,1,3}
ch10={3,1,4,2,6,5,7,8,10,11,9,12,13,14,15;1,2,3,4,5,2,3,6,5,7,8,9,10,7,6;5,5,2,1,5,4,4,2,5,1,2,4,4,2,1}
the individual workflow response times are respectively: rs1=120122.67,rs2=255658,rs3=390328,rs4=341793.33,rs5=321114,rs6=289314,rs7=284975.33,rs8=296870,rs9=414570.67,rs10=340553.33;
The individual workflow execution costs are respectively: ct1=985.4,ct2=2422.3,ct3=1536.2,ct4=2927.1,ct5=2318,ct6=1714.6,ct7=2328.1,ct8=3649,ct9=3114.3,ct10=3418.8;
Calculating the relative fitness value of all the infeasible individuals and the absolute fitness value of the feasible individuals in the population:
because the cost constraint Budget is 1100, the time constraint Deadline is 140000; therefore ch1As feasible individual, ch2、ch3、ch4、ch5、ch6、ch7、ch8、ch9、ch10Is an infeasible individual;
for infeasible subject ch2、ch3、ch4、ch5、ch6、ch7、ch8、ch9、ch10Calculating a relative fitness value:
in the same way, rfit3=4.18、rfit4=5.1、rfit5=4.4、rfit6=3.63、rfit7=4.15、rfit8=5.44、rfit9=5.79、rfit10=5.54;
For feasible individual ch1Calculating an absolute fitness value:
afit1=0.4×250×985.4+0.6×120122.67=170613.60
since BtCh ═ Null, the best individual in the contemporary population is ch 11,3,2,6,5,4,7,8,9,11,10,12,13,14, 15; 1,2,3,2,1,3,1,1, 4,4,4,4,4, 4; 5,5,5,5,3,4,5,4,2,2,1,4,3,2,3}, so that BtCh ═ ch1;
And 5, executing the step: if the termination condition is not met, go to step 6; otherwise go to step 8;
the termination condition is set as that iteration is carried out until a specified algebraic TG is 200; the current iteration is performed for 1 generation, so that the termination condition is not met, and the step 6 is carried out;
and 6, executing the step: constructing an elite population and updating a probability model;
rate of taking elite re=0.2,Selecting N from the current generation population from good to bade2 individuals ch1={1,3,2,6,5,4,7,8,9,11,10,12,13,14,15;1,2,3,2,1,3,1,1,1,4,4,4,4,4,4;5,5,5,5,3,4,5,4,2,2,1,4,3,2,3}ch 61,2,5,3,6,4,7,8,9,10,11,12,13,14, 15; 1,1,2,1,2,1,2,1,3,4,3,5,2,6, 2; 5,4,2,1,3,3,5,3,2,4,5,4,1,1,3} as the current generation elite population POPe={ch1,ch6};
The specific implementation process of the virtual machine distribution probability model updating is as follows:
in the current generation elite population POPeIn the above description, the 1 st scheduled task is assigned to the virtual machine instance numbered 1,there were 2 times in total, so:then according to equation (9) there is:
similarly, other α s are availablei,k(2) I is 2, …,15, k is 1, …,15, and the final updated virtual machine assignment probability model is:
The specific implementation process of the task scheduling order probability model updating is as follows:
in the current generation elite population POPeIn the above, the 1 st scheduled task is task 1, and there are 2 times, so there are: then according to equation (10) there is:
similarly, other β s are availablei,i′(2) I is 1, …,15, i' is 2, …,15, and the probability model of the task scheduling order after updating is finally obtained as follows:
The specific implementation process of the virtual machine type probability model updating is as follows:
in the current generation elite population POPeIn the example number 1, the virtual machine types are all 5, and there are 2 times, so:then according to equation (11) there is:
in the same way, other deltas can be obtainedk,j(2) And k is 2, …,15, j is 1, …,5, and the final updated probability model of the virtual machine type is:
and 7, executing the step: sampling the current probability models PMS (g), PMA (g) and PMT (g) for N times to generate N individuals, forming a new population, and enabling the new population to be a current generation population; turning to step 4;
the current probability models PMS (2), PMA (2) and PMT (2) were sampled 10 times, and 10 individuals were generated as follows:
ch′1={2,3,1,5,4,6,7,8,10,11,9,12,13,14,15;1,2,3,4,5,6,3,1,6,2,7,8,1,9,2;4,4,2,1,2,1,3,2,2,4,5,2,3,1,5}
ch′2={1,3,6,2,5,4,7,8,9,11,10,12,13,14,15;1,2,3,4,5,6,2,7,8,9,10,4,7,4,7;1,5,1,4,4,2,1,3,5,2,5,3,1,1,3}
ch′3={3,1,2,5,6,4,7,8,11,10,9,12,13,14,15;1,2,3,4,1,3,5,6,6,7,1,4,2,4,1;1,1,4,3,4,1,2,4,2,2,5,4,1,4,3}
ch′4={1,2,5,3,6,4,7,8,10,11,9,12,13,14,15;1,2,1,3,3,1,4,1,2,5,6,7,4,8,9;3,4,1,5,3,1,5,1,1,5,5,4,5,5,4}
ch′5={1,4,3,6,2,5,7,8,9,11,10,12,13,14,15;1,2,3,4,1,1,1,4,5,6,3,5,4,7,4,;4,3,2,4,2,4,1,1,4,4,3,4,5,2,2}
ch′6={1,3,2,5,6,4,7,8,10,9,11,12,13,14,15;1,2,3,4,5,1,5,6,7,4,7,2,8,2,8;5,1,4,3,2,2,4,1,4,3,1,5,2,3,3}
ch′7={3,2,1,6,4,5,7,8,9,10,11,12,13,14,15;1,2,1,3,2,4,5,1,6,7,4,6,3,7,8;3,4,3,1,3,4,4,4,5,1,5,3,1,2,1}
ch′8={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;1,2,3,4,5,5,6,1,3,6,6,7,5,8,1;3,5,5,1,3,3,5,1,4,5,5,4,1,3,3}
ch′9={1,3,6,4,2,5,7,8,9,10,11,12,13,14,15;1,2,3,2,4,1,5,6,3,7,8,4,2,9,4;4,4,1,5,3,3,5,1,5,3,1,2,2,1,3}
ch′10={1,2,5,4,3,6,7,8,9,11,10,12,13,14,15;1,2,3,1,4,5,6,1,7,8,4,9,7,10,8;4,1,4,1,3,5,4,1,2,4,5,2,1,3,3}
making the new population formed by the 10 individuals be a current generation population; turning to step 4;
and (4) executing: decoding and improving each individual in the contemporary population by adopting FBI & D to obtain the workflow execution cost and response time of each individual, and then calculating the relative fitness value of all infeasible individuals and the absolute fitness value of feasible individuals; replacing the content stored in BtCh with the optimal individual if BtCh ═ Null or the optimal individual in the contemporary population is better than the individual stored in BtCh;
after FBI & D decoding and improvement, individuals in contemporary populations become:
ch1={2,3,1,5,4,6,7,8,10,11,9,12,13,14,15;1,2,3,4,5,6,3,1,6,2,7,8,1,9,2;4,4,2,1,2,1,3,2,2,4,5,2,3,1,5}
ch2={1,3,6,2,5,4,7,8,9,11,10,12,13,14,15;1,2,3,4,5,6,2,7,8,9,10,4,7,4,7;1,5,1,4,4,2,1,3,5,2,5,3,1,1,3}
ch3={3,1,2,5,6,4,7,8,11,10,9,12,13,14,15;1,2,3,4,1,3,5,6,6,7,1,4,2,4,1;1,1,4,3,4,1,2,4,2,2,5,4,1,4,3}
ch4={1,2,5,3,6,4,7,8,10,11,9,12,13,14,15;1,2,1,3,3,1,4,1,2,5,6,7,4,8,9;3,4,1,5,3,1,5,1,1,5,5,4,5,5,4}
ch5={1,4,3,6,2,5,7,8,9,11,10,12,13,14,15;1,2,3,4,1,1,1,4,5,6,3,5,4,7,4;4,3,2,4,2,4,1,1,4,4,3,4,5,2,2}
ch6={1,3,2,5,6,4,7,8,10,9,11,12,13,14,15;1,2,3,4,5,1,5,6,7,4,7,2,8,2,8;5,1,4,3,2,2,4,1,4,3,1,5,2,3,3}
ch7={1,2,5,3,6,4,7,8,11,9,10,12,13,14,15;1,2,3,1,4,2,5,1,3,6,7,6,4,7,8;3,4,1,3,3,4,4,4,5,1,5,3,1,2,1}
ch8={3,2,1,5,4,6,7,8,10,11,9,12,13,14,15;1,2,3,4,5,5,6,1,3,6,6,7,5,8,1;3,5,5,1,3,3,5,1,4,5,5,4,1,3,3}
ch9={1,3,6,4,2,5,7,8,9,10,11,12,13,14,15;1,2,3,2,4,1,5,6,3,7,8,4,2,9,4;4,4,1,5,3,3,5,1,5,3,1,2,2,1,3}
ch10={1,2,5,4,3,6,7,8,9,11,10,12,13,14,15;1,2,3,1,4,5,6,1,7,8,4,9,7,10,8;4,1,4,1,3,5,4,1,2,4,5,2,1,3,3}
the individual workflow response times are respectively: rs1=396332,rs2=439099.33,rs3=538904,rs4=481070.67,rs5=349182,rs6=560492,rs7=290336,rs8=347732.67,rs9=328615.33,rs10=375500.67;
The individual workflow execution costs are respectively: ct1=3109,ct2=2955.2,ct3=2994.1,ct4=2861.6,ct5=2087.5,ct6=2584.3,ct7=2238.9,ct8=3123.6,ct9=3366.7,ct10=2116.8;
All individuals were infeasible and their relative fitness values were: rfit1=5.66,rfit2=5.82,rfit3=6.57,rfit4=6.04,rfit5=4.39,rfit6=6.35,rfit7=4.11,rfit8=5.32,rfit9=5.41,rfit10=4.61;
Since the feasible individual absolute fitness value in BtCh is rfitBtCh170613.6, the best individuals in the contemporary population are not superior to those stored in BtCh and therefore do not replace the content of BtCh;
and 5, executing the step: if the termination condition is not met, go to step 6; otherwise go to step 8;
the termination condition is iterated to a specified generation TG being 200 generations; as the current iteration is carried out for 2 generations and does not meet the termination condition, the step 6 is carried out;
……
the steps 6,7, 4 and 5 are repeatedly executed until the specified generation TG is 200 generations, and the current generation population becomes:
ch1={3,1,4,2,5,6,7,8,11,9,10,12,13,14,15;1,2,3,2,2,1,2,2,2,2,2,2,4,4,4;5,5,5,5,4,3,4,2,3,5,1,3,2,1,2}
ch2={3,1,4,2,5,6,7,8,11,9,10,12,13,14,15;1,2,3,2,2,1,2,2,2,2,2,2,4,4,4;5,5,5,5,4,3,4,2,3,5,1,3,2,1,2}
ch3={3,1,4,2,5,6,7,8,11,9,10,12,13,14,15;1,2,3,2,2,1,2,2,2,2,2,2,4,4,4;5,5,5,5,4,3,4,2,3,5,1,3,2,1,2}
ch4={3,1,4,2,5,6,7,8,11,9,10,12,13,14,15;1,2,3,2,2,1,2,2,2,2,2,2,4,4,4;5,5,5,5,4,3,4,2,3,5,1,3,3,1,2}
ch5={3,1,4,2,5,6,7,8,11,9,10,12,13,14,15;1,2,3,2,2,1,2,2,2,2,2,2,4,4,4;5,5,5,5,4,3,4,2,3,5,1,3,2,1,2}
ch6={3,1,4,2,5,6,7,8,11,9,10,12,13,14,15;1,2,3,2,2,1,2,2,2,2,2,2,4,4,4;5,5,5,5,4,3,4,2,3,5,1,3,2,1,2}
ch7={3,1,4,2,5,6,7,8,11,9,10,12,13,14,15;1,2,3,2,2,1,2,2,2,2,2,2,4,4,4;5,5,5,5,4,3,4,2,3,5,1,3,2,1,2}
ch8={3,1,4,2,5,6,7,8,11,9,10,12,13,14,15;1,2,3,2,2,1,2,2,2,2,2,2,4,4,4;5,5,5,5,4,3,4,2,3,5,1,3,3,1,2}
ch9={3,1,4,2,5,6,7,8,11,9,10,12,13,14,15;1,2,3,2,2,1,2,2,2,2,2,2,4,4,4;5,5,5,5,4,3,4,2,3,5,1,3,3,1,2}
ch10={3,1,4,2,5,6,7,8,11,9,10,12,13,14,15;1,2,3,2,2,1,2,2,2,2,2,2,1,4,4;5,5,5,5,4,3,4,2,3,5,1,3,2,1,2}
the individual workflow response times are respectively: rs1=125977.33,rs2=125977.33,rs3=125977.33,rs4=125977.33,rs5=125977.33,rs6=125977.33,rs7=125977.33,rs8=125977.33,rs9=125977.33,rs10=140377.33;
The individual workflow execution costs are respectively: ct1=756.5,ct2=756.5,ct3=756.5,ct4=756.5,ct5=756.5,ct6=756.5,ct7=756.5,ct8=756.5,ct9=756.5,ct10=1008.5;
The relative fitness values of the infeasible individuals are respectively as follows: rfit10=1.92;
The absolute fitness values of feasible individuals are respectively as follows: afit1=151236.4,afit2=151236.4,afit3=151236.4,afit4=151236.4,afit5=151236.4,afit6=151236.4,afit7=151236.4,afit8=151236.4,
afit9=151236.4;
BtCh ═ 3,1,4,2,5,6,7,8,11,9,10,12,13,14, 15; 1,2,3,2,2,1,2,2,2,2,2, 4,4, 4; 5,5,5,5,4,3,4,2,3,5,1,3,2,1,2 }; individual workflow response time rsBtCh125977.33, execution cost ctBtCh756.5, absolute fitness value afitBtCh=151236.4。
And step 8 is executed: if the feasible individuals are stored in the BtCh, outputting the corresponding execution scheme as an optimization scheme; otherwise, there is no feasible implementation.
Since {3,1,4,2,5,6,7,8,11,9,10,12,13,14, 15; 1,2,3,2,2,1,2,2,2,2,2, 4,4, 4; 5,5,5,5,4,3,4,2,3,5,1,3,2,1,2} are feasible individuals, so the corresponding execution schemes are output as optimization schemes, as shown in table 3.
Execution order | Task numbering | Example numbering | Starting time | Execution time | End time | Virtual machine type numbering |
1 | 3 | 1 | 0 | 12084 | 12084 | 5 |
2 | 1 | 2 | 0 | 8584 | 8584 | 5 |
3 | 4 | 3 | 8584 | 9970.67 | 18554.67 | 5 |
4 | 2 | 2 | 8584 | 7584 | 16168 | 5 |
5 | 5 | 2 | 16168 | 9186.67 | 25354.67 | 5 |
6 | 6 | 1 | 12084 | 10870.67 | 22954.67 | 5 |
7 | 7 | 2 | 25354.67 | 16186.67 | 41541.33 | 5 |
8 | 8 | 2 | 41541.33 | 10626.67 | 52168 | 5 |
9 | 11 | 2 | 52168 | 8336 | 60504 | 5 |
10 | 9 | 2 | 60504 | 13566.67 | 74070.67 | 5 |
11 | 10 | 2 | 74070.67 | 5333.33 | 79404 | 5 |
12 | 12 | 2 | 79404 | 15426.67 | 94830.67 | 5 |
13 | 13 | 4 | 94830.67 | 10640 | 105470.67 | 5 |
14 | 14 | 4 | 105470.67 | 11666.67 | 117137.33 | 5 |
15 | 15 | 4 | 117137.33 | 8000.00 | 125137.33 | 5 |
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 (7)
1. A workflow execution optimization method based on a distributed estimation algorithm in a cloud computing environment is characterized by comprising the following steps: the method comprises the following steps:
step 1: acquiring information required by executing optimization of the cloud workflow;
get task set T ═ T1,...,tI},tiRepresenting a task i, namely a task with the number i; wherein I is the number of tasks to be scheduled;
acquiring a time sequence relation between tasks: parent task set PR of task iiSubstask set SC for task iiWherein I is 1, …, I;
acquiring task related parameters: length len of task iiI.e. the number of instructions that need to be consumed when task i is processed by the virtual machine, the list of input files IFL that is needed when task i is processedi、Output file list OFL generated after task i is processedi、And the size of the file in the file list, wherein: i is 1, …, I; task i is task i+The requirements of the parent task are as follows: 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 type set VM ═ VM in a cloud computing environment1,vm2,…,vmJWhere J is the number of types of virtual machines, vmjRepresenting a j-class virtual machine;
acquiring related parameters of the virtual machine: computing power ps of class j virtual machinesjBandwidth bw of class j virtual machinesjClass j virtualUnit time cost vc of a machinejFixed lease-starting cost fc of j-class virtual machinejMinimum billing time unit ut for class j virtual machinesjMinimum lease-on time ft of class j virtual machinej(ii) a The cost of renting a class j virtual machine is calculated as follows:wherein: lt is lease time, J is 1,2 …, J;
acquiring cost constraint Budget and time constraint Deadline executed by a workflow in a cloud computing environment; if no cost constraint exists, setting Budget as MBV, and if no time constraint exists, setting Deadline as MDV; wherein: MBV is the upper cost limit, and MDV is the upper time limit;
step 2: calculating a level value of the task;
for a starting task i without a parent task, the hierarchy value is:
lvli=1 (1)
the hierarchy values of other tasks are calculated using the following recursive formula:
and step 3: initializing the contemporary population, and making BtCh equal to Null;
generating 1 individual based on the level and the benefit ratio, and sampling the initial probability model for N-1 times to generate N-1 individuals to form an initial current generation population; wherein N is the population size;
the individual encoding method is as follows: ch ═ gr1,…,grI;gs1,…,gsI;gt1,…,gtIWhere { gr1,…,grIThe scheduling order list is a topological order of task numbers; { gs1,…,gsIIs the virtual machine allocation list, gsiA virtual machine instance number representing an assignment to an ith scheduled task, wherein: gs is1=1,gsi≤max{gs1,…,gsi-1}+1;{gt1,…,gtIIs the virtual machine typeList, gtiType of virtual machine instance denoted i, gt1,…,gtIIs an integer value between 1 and J;
the step of generating 1 individual based on the hierarchy and the benefit ratio comprises the following steps:
step A1: randomly arranging the tasks according to the level values of the tasks from small to large, namely randomly arranging the tasks with the level values of small in front of large and with the same level values to form an individual task scheduling sequence list { gr1,…,grI};
Step A2: generating individual virtual machine allocation list { gs) based on benefit ratio1,…,gsIAnd list of virtual machine types { gt1,…,gtI}; obtaining the execution time and the completion time of all tasks: et ali、fi,i=1,…,I;
Step A3: output an individual ch1={gr1,…,grI;gs1,…,gsI;gt1,…,gtIExecution time and completion time of all tasks: et ali、fiI-1, 2 …, I, and calculating its workflow response time rs1And the operation is finished;
the probability model comprises a task scheduling sequence probability model PMS (g), a virtual machine allocation probability model PMA (g) and a virtual machine type probability model PMT (g);
β thereini,i′(g) Indicating that the task scheduled in the ith' generation is tiThe probability of (a) of (b) being,
α thereini,k(g) Indicating assignment of tasks to ith schedule at the g-th generationThe probability of the virtual machine instance numbered k,
wherein deltak,j(g) Representing the probability that the type of the virtual machine instance with the g generation number k is j;
the probability model of the initial task scheduling sequence is as follows:
wherein: STSρ={ti|ξi<ρ≤I-ζiIs a set of tasks, ζ, that can be scheduled for scheduling at the ρ -thiIs the number of descendant tasks of task i, ξiIs the number of ancestor tasks of task i;
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);
the initial virtual machine distribution probability model is as follows:
the initial virtual machine type probability model is as follows:
j is the number of types of virtual machines;
the probability models PMS (g), PMA (g) and PMT (g) are sampled for 1 time to generate 1 individual, and the method comprises the following steps:
step B1: sampling of virtual machine types:
step B1.1: let variable k be 1;
step B1.2: obtaining a probability A that the type of the virtual machine instance numbered k is jk,j=δk,j(g) J is 1, …, J; calculating the cumulative probability:
Step B1.4: let k be k + 1; if k is less than or equal to I, turning to step B1.2, otherwise, obtaining a virtual machine type list, and turning to step B2;
step B2: initializing a system state:
step B2.1: make all virtual machines available a time period list vatlk={[0,∞]},k=1,…,I;
Step B2.2: let ready time rt of taskiTask set P (t) 0i)=PRiI is 1, …, I; order task setThe task set UT is T;
step B3 according to [ β ]1,q(g)…βI,q(g)]TRandomly selecting a task from RT by roulette, not setting ti(ii) a Let grq=i;
Step B4 according to [ α ]q,1(g)…αq,I(g)]Using roulette in [1, MI]Randomly selecting a virtual machine instance number between the two, setting the number as k, and enabling gsqK is; if k is MI, then MI is MI + 1;
step B5: handle tiAssigned to virtual machine instance numbered k:
Step B5.2: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd upsilonk-eti≥rti;
Step B5.3: t is tiStart time s ofi=max{νk,rti},tiEnd time f ofi=si+eti;
Step B5.5: list of time slots available in virtual machine, vatlkDeletion of [ v ]k,υk]V, with insertion interval length greater than 0k,si]And [ fi,υk];
step B6: if RT is not null, then q ═ q +1, go to step B3, otherwise go to step B7;
step B7: obtaining an individual chn={gr1,…,grI;gs1,…,gsI;gt1,…,gtIExecution time and completion time of all tasks: et ali、fiI1, 2 …, I, whose workflow response time rs is calculatednN belongs to {2, …, N }, and the operation is finished; and 4, step 4: employing FBI for each individual in contemporary populations&D, decoding and improving to obtain the workflow execution cost and response time of each individual, and then calculating the relative fitness value of all the infeasible individuals and the absolute fitness value of the feasible individuals; replacing the content stored in BtCh with the optimal individual if BtCh ═ Null or the optimal individual in the contemporary population is better than the individual stored in BtCh;
for each of the populationIndividual chn={gr1,…,grI;gs1,…,gsI;gt1,…,gtI1, …, N; the FBI&D comprises the following steps:
Step C1.1: according to task completion time fiRearranging the task scheduling order list from large to small { gr1,…,grISetting the ith gene value in the task scheduling sequence list as the serial number of the task finished by the I-th time, wherein I is 1, … and I; form a
Step C1.2: in order to maintain the validity of the original resource configuration scheme and codes, the virtual machine instance list { gs is adjusted1,…,gsIAnd list of virtual machine types { gt1,…,gtIIs formed by
Step C1.2.1: let variable epsilon be 1 and variable delta be 1; let the flag value flg1=…=flgI0; order tok=max{gs1,…,gsI}+1,…,I;
Step C1.2.2: if flgεIf 0, go to step C1.2.3; otherwise go to step C1.2.5:
step C1.2.3: finding tasksIn { gr1,…,grIThe scheduling order in (1) is not set toIn chnFind out the use number asTask number set of virtual machine instanceIn thatFind out the scheduling sequence set of the corresponding task in ST
step C1.2.5: let epsilon equal to epsilon + 1; if ε ≦ I, go to step C1.2.2, otherwise go to step C2;
step C2: method for decoding reverse individuals by adopting serial reverse individuals based on insertion modeDecoding to obtain the reverse completion time of all tasksAnd its workflow reverse response timeIf it isLess than rsnGo to step C3, otherwise go to step C5;
step C3: form positive individual chn={gr1,…,grI;gs1,…,gsI;gt1,…,gtI}:
Step C3.1: according to task reverse completion timeRearranging task scheduling order list from large to smallSetting the ith gene value in the task scheduling sequence list as the serial number of the last ith completed task, wherein I is 1, … and I; form { gr1,…,grI};
Step C3.2: adjusting virtual machine instance list to maintain original resource configuration scheme and code validityAnd virtual machine type listForm { gs1,…,gsI}、{gt1,…,gtI}:
Step C3.2.1: let variable epsilon be 1 and variable delta be 1; let the flag value flg1=...=flgI0; order to
Step C3.2.2: if flgεIf 0, go to step C3.2.3; otherwise go to step C3.2.5:
step C3.2.3: finding task grεIn thatIn the scheduling order of (1), do not set toIn thatFind out the use number asTask number set of virtual machine instanceIn { gr1,…,grIFinding out the scheduling sequence set SI ═ i | gr of the corresponding task in STi∈ST};
step C3.2.5: let epsilon equal to epsilon + 1; if ε ≦ I, go to step C3.2.2, otherwise go to step C4;
step C4: adopting serial forward individual decoding method based on insertion mode to forward individual chnDecoding is carried out to obtain the completion time f of all tasks1,…,fIAnd its workflow response time rsn(ii) a If rsnIs less thanGo to step C1, otherwise, go to step C5;
step C5: output forward individual chnAnd its workflow response time rsnCalculating its workflow execution cost ctnAnd the operation is finished;
the serial reverse individual decoding method based on the insertion modeFor reverse individualsThe decoding comprises the following steps:
step D1: make reverse ready time of all tasks Is a taskOutput filesets exported to a shared database, i.e.Making a list of time periods available to a virtual machineLet the variable ε be 1;
step D3.1: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd
Step D3.4: list of time slots available in virtual machine, vatlkDeletion of [ v ]k,υk]With an insertion interval length greater than 0And
step D4: let epsilon be epsilon +1, if epsilon is less than or equal to I, go to step D2, otherwise step D5;
step D5: obtaining reverse completion times for all tasksAnd its workflow reverse response timeFinishing the operation;
the serial forward individual decoding method based on the insertion mode is used for forward individual chnThe decoding comprises the following steps:
step E1: let ready times rt of all tasksi0, I-1, …, I; let the variable ε be 1; make available time period list of all virtual machine instances vatlk={[0,∞]},k=1,…,max{gs1,…,gsI};
Step E2: selecting the serial number i-grεThe task of (1);
step E3: based on insert mouldThe formula assigns task i to number k ═ gsεThe virtual machine instance of (1);
step E3.1: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd upsilonk-eti≥rti;
Step E3.2: calculating the start time s of task ii=max{νk,rtiH, completion time fi=si+eti;
Step E3.4: list of time slots available in virtual machine, vatlkDeletion of [ v ]k,υk]V, with insertion interval length greater than 0k,si]And [ fi,υk];
Step E4: let ε equal to ε +1, if ε ≦ I, go to step E2, otherwise step E5;
step E5: obtaining the end time f of all tasksiI1, …, I, whose workflow response time rs is calculatednAnd the operation is finished;
and 5: if the termination condition is not met, go to step 6; otherwise go to step 8;
the termination condition is that the optimal individuals stored in BtCh are not improved after iteration to a designated generation TG or continuous iteration GG generation;
step 6: constructing an elite population and updating a probability model;
selecting from the best to the bad of the contemporary populationIndividuals as the current generation elite population POPeWherein: n is a radical ofeFor elite population size, reE (0,1) is the elite rate;
the method for updating the probability model comprises the following steps:
Respectively allocating the updating rates of a probability model, a task scheduling sequence probability model and a virtual machine type probability model to the virtual machine;
and 7: sampling the current probability models PMS (g), PMA (g) and PMT (g) for N times to generate N individuals, forming a new population, and enabling the new population to be a current generation population; turning to step 4;
and 8: if the feasible individuals are stored in the BtCh, outputting the corresponding execution scheme as an optimization scheme; otherwise, there is no feasible implementation.
3. The workflow execution optimization method based on the distributed estimation algorithm in the cloud computing environment according to claim 1, wherein: in the step A2, an individual virtual machine allocation list { gs is generated based on the benefit ratio1,…,gsIAnd list of virtual machine types { gt1,…,gtIThe concrete steps are as follows:
step A2.1: order virtual machine instance setLet gs1=gs2=…=gsI=0,gt1=gt2=…=gtI0; let ready times rt of all tasks1=rt2=…=rtI0; let the variable ε be 1;
step A2.2: let variable i become grεThe variable K is INS, the variable K is 1, the variable η is 1, the calculation is carried out on the tiThe comprehensive benefit ratio after being respectively allocated to each potential virtual machine instance is as follows:
step A2.2.1: if K is less than or equal to K, go to step A2.2.2, otherwise, go to step A2.2.6;
step A2.2.2: calculating tiExecution time after assignment to virtual machine instance numbered kWherein:is a handle tiThe processing time of the task when the virtual machine instance with the number k is processed, is the processing power of the virtual machine instance numbered k;is a handle tiThe virtual machine instance with the number k needs to obtain the file transfer time of the input file from other virtual machines when processing,k-is to process ti-a virtual machine instance number of the virtual machine instance,andis numbered k and k-Bandwidth of the virtual machine instance of (1);is a handle tiThe virtual machine instance with number k needs to obtain the file transfer time of the input file from the shared database when processing,
step A2.2.3: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥eti,kAnd upsilonk-eti,k≥rti;
Step A2.2.4: calculating tiStarting time s after assigning to virtual machine instance numbered ki,k=max{νk,rtiH, completion time fi,k=si,k+eti,k;
Step A2.2.5, calculating the comprehensive benefit ratio ξi,k:
Wherein: theta is formed by [0,1]]Is a weight coefficient, mu>0 is a coordination coefficient of cost and time,is tiLease time, lt, assigned to a virtual machine instance numbered k after a virtual machine instance numbered kk′=Rntk′-HrtkIs' tiThe lease time of a virtual machine instance numbered k before a virtual machine instance numbered k has not yet been assigned,is tiThe return time of the virtual machine instance with the number of k before the virtual machine instance with the number of k is not distributed;is tiA start lease time for a virtual machine instance numbered k before a virtual machine instance numbered k has not yet been assigned; making k equal to k +1, and going to step a2.2.1;
a2.2.6, if η is not more than J, go to A2.2.7, otherwise go to A2.3;
step A2.2.7: calculating tiExecution time after allocation to a new type η virtual machine instanceWherein: omegai,ηIs a type η virtual machine instance process tiTime of (a), ωi,η=leni/psη;Is a handle tiThe file transfer time allocated to the virtual machine instance of type η that needs to obtain the input file from the other virtual machine when processing,k-is to process ti-The virtual machine instance number of (a); tau isi,ηIs a handle tiThe file transfer time allocated to the processing of the type η virtual machine instance required to obtain the input file from the shared database,
step A2.2.8: calculating tiThe start time s after the allocation of this new type η virtual machine instancei,K+η=rtiCompletion time fi,K+η=si,K+η+eti,K+η;
Step A2.2.9: calculating the comprehensive benefit ratio:whereinIs tiAfter allocating the new virtual machine instance with type η, the lease time of the new virtual machine instance with type η is reached, so that η is η +1, go to step A2.2.6;
step A2.3 from ξi,1,…,ξi,K+JFind a minimum among them, do not set asIf the subscript valueThen orderOtherwise, let gsε=K+1、Adding a virtual machine instance ins numbered K +1K+1I.e., INS ∪ INSK+1,vatlK+1={[0,∞]};
Step A2.4: change task i to grεAssigning to a virtual machine instance k-gsε:
Step A2.4.3: in vatlkFinding out an idle time period [ v ] from morning to eveningk,υk]Satisfy upsilonk-νk≥etiAnd upsilonk-eti≥rti;
Step A2.4.4: in vatlkDeletion of [ v ]k,υk]V, with insertion interval length greater than 0k,si]And [ fi,υk];
Step A2.5: let epsilon equal to epsilon + 1; if epsilon is less than or equal to I, go to step A2.2, otherwise go to step A2.6;
step A2.6: let K be | INS |, if K<I, then I-K random integers between 1 and J are generated, which are not set to: piK+1,……,πI(ii) a Order: gtK+1=πK+1,……,gtI=πI;
Step A2.7: obtaining an individual { gr1,…,grI;gs1,…,gsI;gt1,…,gtIExecution time and completion time of all tasks: et aliAnd fiI is 1,2 …, I, and the operation ends.
4. The workflow execution optimization method based on the distributed estimation algorithm in the cloud computing environment according to claim 1, wherein: for individual chnThe workflow response time rsnAnd an execution cost ctnThe specific calculation method is as follows:
wherein:is the fixed lease start cost for the virtual machine instance numbered k,is the cost per unit time of the virtual machine instance numbered k,is the minimum billing time unit for the virtual machine instance numbered k,is the minimum lease-on time of a virtual machine instance numbered k,Is the bandwidth of the virtual machine instance numbered k, ltk=Rntk-HrtkIs the lease time, Hrt, of the virtual machine instance numbered kkThe start lease time of the virtual machine instance numbered k; rntkThe return time of the virtual machine instance with the number of k is obtained; is to completeIf the maximum time at which the file in (1) is output to the corresponding recipient is reachedWithout exporting files to the shared databaseThen the corresponding recipient is processingIf the virtual machine of the subtaskWithout subtasks, i.e.The respective recipient is a shared database, otherwise ifWith both file output to the shared database and subtasksThen the corresponding recipient is processingThe virtual machines and the shared database of the subtasks,
5. the workflow execution optimization method based on the distributed estimation algorithm in the cloud computing environment according to claim 1, wherein: for individual ch in the populationnN is 1,2 …, N if ctn≤Budget∨rsnWhen the adaline is not more than the preset value, ch isnAs viable individuals, otherwise chnIs an infeasible individual;
the specific calculation method of the relative fitness value of the infeasible individual is as follows:
the specific calculation method of the absolute fitness value of the feasible individual is as follows: afitn=θ×μ×ctn+(1-θ)×rsn;
Wherein: theta belongs to [0,1] and is a weight coefficient, and mu is a coordination coefficient of cost and time;
when the individual quality is compared, the feasible individual is superior to the infeasible individual; for all feasible individuals, the smaller the absolute fitness value is, the better the individual is; for all infeasible individuals, the smaller the relative fitness value, the better the individual.
6. The method for workflow execution optimization based on distributed estimation algorithm in cloud computing environment as claimed in claim 1, wherein in said step B3 is according to [ β ]1,q(g)…βI,q(g)]TThe specific steps of selecting a task from the RT using rouletteThe following were used:
7. The method for workflow execution optimization based on distributed estimation algorithm in cloud computing environment as claimed in claim 1, wherein in said step B4 is according to [ α ]q,1(g)…αq,I(g)]Using roulette in [1, MI]The specific steps of randomly selecting a virtual machine instance number are as follows:
step B4.1: calculate the probability that the various possible numbers are chosen: a. thek=αq,k(g),k=1,…,MI-1;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911259945.4A CN111026533A (en) | 2019-12-10 | 2019-12-10 | Workflow execution optimization method based on distributed estimation algorithm in cloud computing environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911259945.4A CN111026533A (en) | 2019-12-10 | 2019-12-10 | Workflow execution optimization method based on distributed estimation algorithm in cloud computing environment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111026533A true CN111026533A (en) | 2020-04-17 |
Family
ID=70205374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911259945.4A Withdrawn CN111026533A (en) | 2019-12-10 | 2019-12-10 | Workflow execution optimization method based on distributed estimation algorithm in cloud computing environment |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026533A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064711A (en) * | 2021-04-15 | 2021-07-02 | 北京理工大学 | Online multi-workflow dynamic scheduling method and system |
-
2019
- 2019-12-10 CN CN201911259945.4A patent/CN111026533A/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064711A (en) * | 2021-04-15 | 2021-07-02 | 北京理工大学 | Online multi-workflow dynamic scheduling method and system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110632907B (en) | Scheduling optimization method and system for distributed assembly type replacement flow shop | |
CN108829501B (en) | Batch processing scientific workflow task scheduling algorithm based on improved genetic algorithm | |
CN102866912A (en) | Single-instruction-set heterogeneous multi-core system static task scheduling method | |
CN110969362A (en) | Multi-target task scheduling method and system under cloud computing system | |
CN112685138B (en) | Multi-workflow scheduling method based on multi-population hybrid intelligent optimization in cloud environment | |
CN109445386A (en) | A kind of most short production time dispatching method of the cloud manufacturing operation based on ONBA | |
CN111026534B (en) | Workflow execution optimization method based on multiple group genetic algorithms in cloud computing environment | |
CN114461368A (en) | Multi-target cloud workflow scheduling method based on cooperative fruit fly algorithm | |
CN111026533A (en) | Workflow execution optimization method based on distributed estimation algorithm in cloud computing environment | |
CN111078380A (en) | Multi-target task scheduling method and system | |
CN110928648B (en) | Heuristic and intelligent computing-fused cloud workflow segmentation online scheduling optimization method | |
CN110991917B (en) | Multi-mode resource-limited project scheduling optimization method adopting two-stage genetic algorithm | |
CN110928670B (en) | Workflow optimization method based on partial sequence adaptive genetic algorithm in cloud computing environment | |
CN110968428A (en) | Cloud workflow virtual machine configuration and task scheduling collaborative optimization method | |
CN111126800A (en) | Multi-mode resource-limited project scheduling method using layered adaptive intelligent algorithm | |
CN111078361A (en) | Cloud workflow scheduling optimization method based on distributed estimation algorithm | |
CN114980216A (en) | Dependent task unloading system and method based on mobile edge calculation | |
CN111026507A (en) | Cloud workflow virtual machine configuration and task scheduling collaborative optimization method in heterogeneous environment | |
CN115185651A (en) | Workflow optimization scheduling algorithm based on cloud computing | |
CN110928671B (en) | Cloud workflow scheduling optimization method based on hierarchy and load balancing genetic algorithm | |
CN111047183A (en) | Cloud workflow scheduling optimization method based on layered self-adaptive intelligent computing algorithm | |
CN110928669B (en) | Energy consumption perception cloud workflow scheduling optimization method based on multi-population genetic algorithm | |
CN110941487B (en) | Workflow scheduling optimization method based on multi-stage genetic algorithm in cloud computing environment | |
CN111027856B (en) | Multimode resource-constrained project scheduling method based on two-dimensional multi-population genetic algorithm | |
CN111813525A (en) | Heterogeneous system workflow scheduling method |
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: 20200417 |
|
WW01 | Invention patent application withdrawn after publication |