QoS based task scheduling algorithm in cloud computing

. Task scheduling is a critical topic that has a significant impact on the performance of the Cloud computing environment where cloud service providers and users have conflicting objectives and requirements. A good scheduler must provide an acceptable trade-off between these goals. Thus, cloud task scheduling becomes a multi-objective optimization problem. In this paper, our contribution is to address the problem of task scheduling in the Cloud computing environments in order to orchestrate the suitable assignment of the submitted tasks to the set of virtual machines. For this purpose, we have adapted the Flower Pollination Algorithm (FPA) metaheuristic by evaluating its objective function in term of three metrics which are makespan, cost and reliability. The simulation results achieved using CloudSim framework are very satisfactory and clearly show the interest of our FPA-based approach.


Introduction
Cloud computing is a modern technology in the computer field. It appeared with the increase in server power and the fall of their operating costs as well as with the appearance of the high-speed Internet. It allows to provide several flexible and scalable services allowing access to the network on demand. Resources are shared and the computing power is configurable according to the users' needs [1]. In the field of Cloud computing, task scheduling is an important issue that considerably influences the performance of this environment [2]. This problem is considered NP-complete requiring the use of heuristics and metaheuristics for its solution [2]. It is characterized by the fact that it includes complex and often conflicting objectives. This problem is classified as a multi-objective optimization problem, whose complexity grows with the increase of the constraints and the considered parameters [1]. Moreover, finding a good compromise between objectives remains a major challenge.
In this context, the objective of scheduling is to distribute tasks across the Cloud service provider's computational resources in order to optimize several quality of service (QoS) metrics. It's worth noting that most of the researches in the literature have often focused on the optimization of a single QoS metric which is the makespan [3]. Many researches have been conducted in the literature to address the task-scheduling problem in cloud computing environments. [4][5][6][7][8][9][10]. It should be noted that the Flower Pollination Algorithm (FPA) was previously applied for this problem. For instance, an efficient scheme of pollen representation, as well as a dedicated process for determining the assignment of submitted tasks to virtual machines (VMs) from a given pollen is proposed in [11], so that only two criteria namely average cloud utilization and time makespan are optimized. However, it differs from our study in the sense that various models as well as a data set were used.
In this paper, we have adapted the FPA metaheuristic for multi-objective scheduling optimization in Cloud computing. Our objective is to find the best assignment of the submitted tasks in a reasonable amount of time according to three QoS metrics which are makespan, cost and reliability.
We chose two approaches to measure the objective function; on the one hand the aggregation approach and on the other hand, the Pareto principle [12] based on the TOPSIS [13] to pick the best Pareto front solution.
In the aggregation approach, we mapped the multiobjective scheduling issue into a single-objective problem by aggregating the different QoS metrics with a priori defined preferences. Whereas, in the Pareto approach, we treated the multi-objective scheduling problem using the Pareto principle to best meet all QoS metrics according to the TOPSIS obtained results.
The rest of this paper is organized as follows. Section 2 describes our approach based on the adaptation of the FPA. Section 3 demonstrates the proposed algorithm's performance based on three metrics which are makespan, cost and reliability. Our conclusions are drawn in the final section 4.

Adaptation of the FPA metaheuristic
Xin-She Yang in 2012 [14] proposed a natural bioinspired flower pollination algorithm drawing its metaphor from the pollination process of flowering plants. Pollination can be classified into two types: self-pollination and cross-pollination. The former, also known as local pollination, occurs when pollen from one flower pollinates the same flower or other flowers of the same plant with the assistance of environmental factors [14]. While cross-pollination, also known as global pollination, occurs over long distances when pollen is transferred from one flower to another flower in a different plant through direct or indirect intervention by pollinators following Levy flight behavior [15].
During the process of optimization, the FPA algorithm's search space is explored through biotic and cross-pollination where the movement of the pollen is represented by the markovian Lévy flight stochastic processes [15]. The latter is a random walk based on a random step from the Lévy distribution, causing a much longer movement from its current position.
The FPA pseudo code that has been adapted for the assignment of tasks to the different virtual machines is outlined in Algorithm I.
We have adapted the FPA metaheuristic to our scheduling problem by considering a set of VMs as the FPA population. The objective is to find the suitable VM for each task based on a multi-objective optimization of the following three parameters: • Makespan: it represents the time difference between the submission of the first task and the receipt of the results (the finish time of the last executed task).
• Cost: the total execution cost is the sum of the costs related to the use of virtual machines for all the tasks. The execution cost of the task depends on both the duration of its execution on the machine and the unit price of running it on that machine.
• Reliability: it represents the probability that a task will be executed successfully, without any resource failure. Our model for measuring reliability is based on a failure rate which is an intrinsic property of the resource. It is calculated as follows.
Where, ( ) is the execution time of the task and is the failure rate of the machine running the task.
The above three metrics are classified into two categories: the QoS metrics to be maximized (reliability) and those to be minimized (makespan and cost).
In a multi-objective optimization context, the objective function that results from the aggregation of the three previously criteria is defined as follows: where = { 1 , 2 , 3 } is the weight vector that reflects the importance or requirement of the user with respect to each criterion.
As the function is to be minimized and as the third parameter Reliability is to be maximized, we will take its inverse 1 in order to minimize all the objective functions.

Algorithm I
Define a switch probability ∈ [0,1] For each task in the list of cloudlets do Initialize the initial population with random VMs Find the best virtual machine for task in the initial population While (stop criterion) do For each virtual machine in the population do ,, If () < then Draw a step size that obeys a Lévy-distribution Do global pollination via ′ = + ( − ) Else Draw from a uniform-distribution in [0, 1] Randomly choose two virtual machines and from all solutions. Do local-pollination via ′ = + � − � End if Evaluate the virtual machine ′ If the new generated machine is better, replace with ′ End for Update (the best machine in the population)

End while End for
Note that a pre-simulation stage using the appropriate FPA is necessary to find the best assignments of cloudlets to VMs before sending them to the broker.

Performance evaluation
For FPA, two parameters have to be defined: the size of the population and the switching probability p which determine the search's diversification and intensification percentage. For all the simulations, we used a population size equal to 20% of the created VMs (this percentage gave us better performances). Concerning the switching probability, we took p = 0.8 since this value is suitable for most applications [14]. For the stop criterion, we considered the convergence of the FPA algorithm. The simulations were performed in a heterogeneous environment as listed in Table 1 defining the value associated with each parameter.
We used the CloudSim framework [16] for the various simulations. This tool was chosen for its modeling qualities. It is a generalized and extensible toolkit that supports system modeling and the behavior of Cloud computing components including DataCenters, VMs, cloudlets (tasks) and brokers.
For the assessment of the addressed multi-objective scheduling problem, a comparison was performed using two versions for the evaluation of the solutions provided by FPA, namely the Pareto principle based on the TOPSIS technique and the weighted sum method by aggregating the different QoS metrics according to the previously stated objective function (2).     Comparing the results of the weighted sum to the results of Pareto-TOPSIS in terms of execution cost, it can be shown in Figs. 3 and 4 that the later gives the best performance with a vector of weights that favors the execution cost. This is because the Pareto-TOPSIS based approach tries to ensure the three considered objectives owing to their importance. This leads to efficient cost minimisation during the scheduling process. However, in terms of reliability optimization, we can see from Figs 5 and 6 that the difference between the achieved performances of the compared methods are almost similar regardless of the number of tasks and the number of virtual machines.  Taken as a whole, concerning the two objectives makespan and cost, the best is to use Pareto-TOPSIS with the adapted weight vector. Indeed, the weighted sum is a simple projection from the multi-objective to the mono-objective. A purely multi-objective approach like Pareto-TOPSIS is more recommended in this context. For reliability, this is a somewhat special metric because in the Cloud, VMs are considered reliable since existing Cloud providers offer services with too small failure rates that can go down to 10 −7 or 10 −8 . For this reason, the used method does not have much impact on this objective.

Conclusion
In this paper, we have addressed the task scheduling problem in Cloud computing environments. The main objective is to orchestrate the best assignment of the submitted tasks to VMs while satisfying user's requirements. To this end, we proposed a multi-objective optimization approach that combined flower pollination metaheuristic with TOPSIS-based Pareto principle to select the Pareto front's most compromising solution. Based on CloudSim Framework, the obtained results are more interesting for TOPSIS according to the Pareto principle by comparing them with the aggregation especially for the favored criterion, in order to offer a better QoS to the users according to their needs.
In future work, we intend to extend the studied optimization problem to other QoS metrics (load balancing, energy, fault tolerance ...). It would also be interesting to introduce a new notion of optimality in addition to Pareto and aggregation as well as the application of other metaheuristics such as firefly algorithm [17], bacterial foraging for optimization [18] or dragonfly algorithm [19] in order to compare their results with the FPA's performances.