Enhancing of Artificial Bee Colony Algorithm for Virtual Machine Scheduling and Load Balancing Problem in Cloud Computing

This paper proposes the combination of Swarm Intelligence algorithm of artificial bee colony with heuristic scheduling algo-rithm, called Heuristic Task Scheduling with Artificial Bee Colony (HABC). This algorithm is applied to improve virtual machines scheduling solution for cloud computing within homogeneous and heterogeneous environments. It was introduced to minimize makespan and balance the loads. The scheduling performance of the cloud computing system with HABC was compared to that supplemented with other swarm intelligence algorithms: Ant Colony Optimization (ACO) with standard heuristic algorithm, Particle Swarm Optimization (PSO) with standard heuristic algorithm and improved PSO (IPSO) with standard heuristic algorithm. In our experiments, CloudSim was used to simulate systems that used different supplementing algorithms for the purpose of comparing their makespan and load balancing capability. The experimental results can be concluded that virtual machine scheduling management with artificial bee colony algorithm and largest job first (HABC_LJF) outperformed those with ACO, PSO, and IPSO. © 2020 The Authors . Published by Atlantis Press SARL. This is an open access article distributed under the CC BY-NC 4.0 license (http://creativecommons.org/licenses/by-nc/4.0/).


INTRODUCTION
Artificial Bee Colony (ABC) is a Swarm Intelligent (SI) algorithm inspired by the foraging behavior of honey bees proposed by Karaboga in 2005 [1,2] and it is modified from Bee Colony Optimization (BCO) that was proposed for the first time in 2001 [3]. The foraging habits of honey bees are foraging and waggle dancing. The main idea is to create the multi agent system which is the colony of artificial bees to be able to efficiently solve hard combinatorial optimization problems. Therefore, ABC has been successfully employed in optimizations problems like data-mining problem [4,5], job shop scheduling [6,7], binary optimization [8][9][10], travelling salesman [11], biochemical networks [12], engineering optimization [13,14], image processing [15][16][17], as well as scheduling problem in cloud computing [18][19][20][21].
Cloud computing system [22,23] provides computing services via the Internet which will be operated upon user's requests. The requests are to manage the resources and services used through the system software. The user can control the amount of resources used such as CPU or RAM to an extent without having knowledge about the service types [24]. As cloud computing is based on virtualization technology that has no restriction on computing resources, it has a great advantage for service providers in terms of simplicity, energy saving, and low resource management cost. Cloud computing uses a virtualization technique to create Virtual Machines (VMs) [25,26]. * Corresponding author. Email: warangkhana.ki@kmitl.ac.th It uses software to make a computer work like a system of multiple computers (VMs). VMs can replace a physical computer server and other necessary physical resources as they have their own independent virtual resources [27].
Tasks scheduling is a challenging problem and known to be NPcomplete problem [28,29]. If the same server is simultaneously being requested to be used by many users, the other servers will become idle. This is called load imbalance. This problem can be solved by an algorithm to schedule tasks properly prior to service processing on VMs. A system with a proper task scheduling algorithm can also provide an advantage of efficient use of the system resources, i.e., it can reduce waiting time for a service queue and distribute some tasks to other servers. The implementation of this algorithm is called load balancing.
The operations of cloud computing are quite similar to those of ABC algorithm as both can adapt themselves to their environment which is a characteristic of the foraging behavior of bees. Their objectives are also similar: the objective of cloud computing is to maximize throughput for a desired makespan while that of bee foraging behavior is to find a food source with a large amount of honey with the least amount of effort.
The main contributions of this paper are to propose the idea of applying ABC algorithm and a task scheduling heuristic to each VM. The algorithm will minimize the makespan or the overall processing time of tasks and provide load balancing in cloud computing. Moreover, we focused on cloud computing within both homogeneous and heterogeneous environments and observed how good the HABC algorithm works when the number of tasks in the system was varied and the type of datasets was changed. It is found that this algorithm performed the task scheduling better than ACO, PSO, and IPSO.
The paper is structured as follows: the related works, including task scheduling and load balancing in cloud computing and the ABC algorithm are described in Section 2. Adoption of a scheduling heuristic and load balancing algorithm inspired by ABC for cloud computing is proposed in Section 3. The experimental settings and results are discussed in Section 4. Finally, Section 5 presents the conclusion.

Task Scheduling and Load Balancing in Cloud Computing
Cloud computing system creates a shared network resource and service with the user. Due to its diversified, dynamic, and flexible nature, different resources and services offering to different users, are the advantages of cloud computing. It provides a service upon user's request [24,30]. Cloud service providers offer various cloud services to user [22,23]. Resource management in cloud computing varies depending on the kind of user's request.
Heterogeneity in cloud computing depends on the infrastructure and service provided by providers. In case of providing the system with the same infrastructure to software packages and resources, the environment in the system will be called homogeneous cloud environment [31], while the environment in a system with different resources are provided by different providers, software packages by some other, infrastructure by yet another will be called heterogeneous cloud environment [32].
Over the last few years, exhaustive researchers have proposed several different task scheduling algorithms which run under the cloud computing resource utilization. Task scheduling algorithms mostly aimed to balance the workload that users requested for within the limitation of the system resources and to increase the efficiency of cloud computing. For example, Chase et al. [33] presented implementation of an architecture for resource management for large server clusters in order to provision server resources for co-hosted services and improve the energy efficiency of server clusters by dynamically resizing the active server set.
In 2009, D. Kusic et al. [34] presented a lookahead control scheme to solve a dynamic resource provisioning framework for a multiobjective optimization in a virtualized server environment. The technique can approach accounts for the switching costs incurred while provisioning VMs and explicitly encodes the corresponding risk in the optimization problem.
In 2011, D. Minarolli and B. Freisleben [35], proposed a scheme that dynamically allocates the resources to VMs. Such that quality of service constraints is satisfied, and its operating costs are minimized by a two-tier resource management approach based on adequate utility functions. Later in 2012, A. Gorbenko and V. Popov [36] proposed a logical model to solve the task-resource scheduling problem that minimized the resource and cost by applying algorithms for the satisfiability problem (SAT).
In 2013, S. Son et al. [37] proposed a Service Level Agreement (SLA) based on cloud computing framework to facilitate resource allocation considering the workload and geographical location of distributed data centers. This approach was suggested to tackle using the automated SLA negotiation mechanism and a Workload and Location-aware Resource Allocation scheme (WLARA) supports providers in earning higher profits. In 2015, A. Singh and K. Dutta [38], presented the resource allocation algorithm by Analytic Hierarchy Process (AHP) with a pairwise comparison matrix technique. This proposed technique made a better resource allocation than other algorithms. In 2017, Ullah et al. [39] presented a real-time resource usage prediction system which took real-time utilization of resources and fed utilization values into several buffers based on the resource types and time span size. Scheduling problem have been also discussed in different contents as in Refs. [40][41][42].

Related Work about Bioinspired and Meta-Heuristics Algorithms to Solve Cloud Computing
The nature-inspired metaheuristics algorithms attempt to attain the global optimal solution by examining the most suitable locations in the search space domain, based on the natural mechanism. The methods are different depending on type of algorithms, because some algorithms are suitable in solving specific type of problems but not suitable for others. This is due to the randomization or stochastic strategies that are used in solving those NP-Hard problems.
In 2019, H. Saleh et al. [49] proposed a cloud task scheduling with improved PSO (IPSO) algorithm that minimizes makespan and uses the resources in the system to the best advantage for a large number of tasks. T. P. Jacob and K. Pradeep [54] proposed hybrid algorithm is called as, CS algorithm, and particle swarm optimization (CPSO) for multi-objective-based task scheduling. They focused on the comparison of processing in terms of minimization of makespan, cost, and deadline violation rate in the heterogeneous cloud environment.
Many researchers had proposed approaches using metaheuristicbased to QoS-aware cloud service composition and cloud migration problem. In 2010, W. Li and H. Yan -xiang [57] developed a Chaos Particle Swarm Optimization (CPSM) method and provided a novel selection algorithm based on global QoS optimizing to solve QoSaware service composition.
In 2014, Wang et al. [58] presented a modified GA to support dataintensive service composition. The research idea is to reduce the cost of service composition that involves large amounts of data transfer, data placement, and data storage.
In 2016, L. Wang and J. Shen [59] presented ant colony system for the dynamic service composition problem multi-phase, multiparty negotiation protocol. The ant colony system was applied to select services with the best or near-optimal utility outputs. Ferdaus et al. [60] proposed a novel ACO-based Migration impactaware Dynamic VM Consolidation (AMDVMC) algorithm in order to solve the Multi-objective, Dynamic VM Consolidation Problem (MDVCP) in computing clouds for minimizing data center resource wastage, power consumption, and overall migration overhead due to VM consolidation.
In 2019, S. K. Gavvala et al. [61] proposed a novel Eagle Strategy with Whale Optimization Algorithm (ESWOA) with eagle strategy to balance the exploration and exploitation in QoS-aware Cloud service composition.

Overview of the ABC Algorithm
ABC algorithm [1,2,62] is an optimization technique for finding an optimal solution. It was inspired by the foraging behavior and collective work of different kinds of bees. In a bee colony, there are 3 types of artificial bees: Scout bees with a duty to randomly search for new food sources, Employed bees that go to the food sources and come back to dance in the hive according to the position and the amount of the food to Onlooker bees that are waiting in the hives, and the last one is Onlooker bees that calculate the fitness value of each food source and choose the optimal source for the Employed bees to go to and collect the food.
If a food source was chosen and all the food was collected, the Employed bees which are the owners of the food source will turn into Scout bees and randomly search for new food sources again. In nature, bees communicate the quality of food sources at a dance floor. They dance a "Waggle Dance" to inform others about the direction to go, the distance from a food source, and the amount of honey of a food source. The Onlooker bees compare all of the food sources and determine the best one. The steps in the ABC algorithm are shown in Figure 1.
ABC algorithm was used in many fields such as job shop scheduling [6,7], binary optimization [8][9][10], travelling salesman [11], digital signal processing [63], and so on. For example, Mizan et al. [18] presented job scheduling in Hybrid cloud by modifying Bee Life algorithm and Greedy algorithm to achieve an affirmative response from the end users and utilize the resources. Accordingly, the objective of this study is to optimize task scheduling, resource allocation, and load balancing using applying Heuristic Task Scheduling with Artificial Bee Colony (HABC) based on the proposed reducing or minimizing makespan in cloud computing environment. This research focused on both cases of homogeneous and heterogeneous environments and investigated how efficient the HABC algorithm performed when the tasks in the system were increased and the data distribution was changed.

LOAD BALANCING ALGORITHM INSPIRED BY ARTIFICIAL BEE COLONY AND HEURISTIC SCHEDULING ALGORITHM
Cloud computing utilizes different resources depending on the types of user's request. Moreover, fulfilment of the request of service depends on workload of servers. If a cloud system has an efficient task scheduling, it will help reduce the makespan and balance the workload among the servers. In Ref. [19] and Ref. [20], ABC algorithm was used to manage VMs scheduling in cloud computing within a homogeneous environment. However, since the specifications of current servers are very different, ABC algorithm with heuristic task scheduling was also applied to a heterogeneous environment in this study. The two goals of the proposed method were to obtain a good workload balance for maximum productivity and minimize total makespan. This section describes the heuristic scheduling algorithm and the proposed scheduling algorithm.

Heuristic Scheduling Algorithm
Heuristic method is an approach to problem solving using rules such as priority rule or using a random method to find an optimal solution for a problem. A heuristic method may provide a good result, but it cannot guarantee an optimal solution. Nevertheless, it is simple to use. A heuristic task scheduling with priority as a criterion for selecting a process in a system was used in this study because it is a basic method for scheduling tasks [63,64]. We selected the following 3 simple priority criteria for investigation [66]: • First Come First Serve (FCFS): is a task scheduling scheme that processes the first job that the user has requested first.
• Smallest Job First (SJF): is a task scheduling scheme that processes with the smallest job first • Largest Job First (LJF): is a task scheduling scheme that processes the largest job first.

Proposed Method
Let VM = {vm 1 , vm 2 , vm 3 , … , vm m }, variables used in this study and their definitions derive from Table 1. Let the system be set to run in an uninterruptible manner, i.e., nonpreemptive. Before the ABC algorithm was run, the tasks were arranged into 3 different arrangements by using the Heuristic algorithms. The best arrangement would use the least computation time when the tasks were processed by the ABC algorithm as mentioned above. The ABC algorithm then scheduled the tasks to access the VMs in the following steps: 1. First step: the number of bees (n) in the population was specified. They were assigned randomly to go to all of the different food sources (m) that represented the VMs and their fitness values were calculated, therefore initializing the VMs as shown in Algorithm 1.
where j = index of the VM that the i th bee found.

End For
2. Second step: a different default value was assigned to each food source according to the specifications of the VM. Bees were grouped into 3 types: Scout Bees, Employed Bees, and Onlooker Bees. A Scout Bee found the initial position of a food source. An Employed Bee went to the food source, recalculated and updated the fitness value of food source. An Onlooker Bee decided which food source was the best food source. The operation of an employed bee is presented in Algorithm 2.
Algorithm 2: Employed bee phase 1. For i = 1 to n 2. Employed bees are sent randomly to food sources (VMs in cloud computing).   (3),

Fitness of each VM is calculated based on (2)
where In length is the length of the task that is waiting to access a VM at that time 4. The onlooker bee chooses the best food source (VM) and assigns a task to the VM 7. Calculate the load balance value of the system after task scheduling on VMs. It is calculated by using Standard Deviation (S.D.) [67] as in (4) and (5), The processing time for each VM (X j ) is calculated according to (6), The average processing time for running a VM in the system (X) is calculated according to (7), If S.D. ≤ X, it means that the system is in a balanced condition whereas if S.D. ≤ X, it means that the system is in a state of imbalance. 8. Scout bee phase (Algorithm 4) 9. Until (the termination condition is met) The total number of tasks the system has to perform The set of tasks N The total number of bees performing in the algorithmic procedure C j The performance of the j th virtual machine Pe The number of processors in the VM

Mi Million Instructions Per Second (MIPS) Bw
Bandwidth of VM F Fitness Tl The length of task in MI a P i Probability that the i th food source is good which depends on its fitness is the size of food sources

System Environment Parameter Settings
The algorithms: HABC, ACO, PSO, and IPSO described were run using CloudSim-3.0.1 [68,69] tools on a personal computer. The experiments were performed on 10 data centers and 50 VMs. In the experiments, we focused on both kinds of environments: homogeneous and heterogeneous environments in cloud computing.
For each VM in cloud computing within a homogeneous environment, the following parameters were set: Instructions Per Second in millions (MIPS is a measurement of the processing speed of a computer) of Processing Element (PE) were fixed at 9726; Number of PE per VM was fixed at 1; and RAM used was fixed at 1024 Megabytes (MB).
For each VM in cloud computing within a heterogeneous environment, the following parameters were set: MIPS were in the range of 5000-9726; Number of PE per VM was fixed at 2; RAM used was set in the range of 512-4096 MB; and Bandwidth was set in the range of 1000-10000.

The Datasets Used in the Experiments
To evaluate the effectiveness of the proposed approach, twelve datasets, shown in Table 2, were used. Those datasets were of 4 types. The set D 1 -D 3 of the first type was a set of random information, i.e., there are no definite terms, no specific format, and no specific distribution of information. The set D 4 -D 6 of the second type was a set of random data with normal distribution. The set D 7 -D 9 of the third type was a set of random data with a Right-Skewed Distribution [70]. Lastly, the set D 10 -D 12 of the fourth type was a set of random data with a Left-Skewed Distribution. Each type of datasets had a different range of job size and each dataset comprised a number of groups of 100, 200, 300, …, 1500 submitted tasks.

Parameters Settings for the Proposed Algorithm and the Comparing Algorithms
In these experiments, we have determined the parameters of the population and various conditions according to the related works, which are referred to HABC [20], ACO [55,56], PSO [48], and IPSO [49]. It is well known that these parameters are highly effect on the algorithms. The determination of parameters is varied according to the dimension of problems or characteristics. One reason that we need tuning the parameters [20] is in order to get the suitable parameters for the pattern of problems and datasets. However, we do not claim that the proposed algorithm or the specified parameters outperform other algorithms for all types of problems and datasets. Therefore, tuning parameters is the best way to get the suitable parameters to solve problems. The experiments had been performed to determine the optimal bee parameters for the proposed algorithm [20] which are shown in Table 3. In addition, the scheduling performance of the proposed algorithm was also compared with those of ACO [55,56], PSO [48], and IPSO [49] that used the parameter settings as shown in Table 3.
Those optimal settings were based on the original papers. The number of iterations that each algorithm would be run in the experiment was 20.

Experimental Results and Discussions
In one of our previous papers [20], the performances of the proposed algorithm in combination with 3 heuristics-HABC_FCFS, HABC_LJF, and HABC_SJF-were compared with those of the heuristics alone-FCFS, LJF, and SJF. The results of previous experiments showed that when the largest job was considered first (HABC_LJF), its scheduling performance was better than those of HABC_FCFS and HABC_SJF.
The HABC_LJF also balanced the load of submitted tasks with minimal makespan. In this paper, we used 2 VM environments: heterogeneous and homogeneous to evaluate the performance of HABC_LJF method on different datasets and to compare it with other scheduling algorithms. The number of VMs was fixed throughout the experiment but the number of tasks was increased in 100 incremental steps from 100 to 1,500 tasks.
In the evaluation of the performance of HABC_LJF algorithm in cloud computing, we divided our experiment into two parts. In the first part, the datasets of various types as described in Table 3 were used. In the second part, the performance of the heuristic task scheduling with ABC in terms of load imbalance was evaluated. In the first part, the performance evaluation was performed on 4 cases according to the type of datasets used. The following are the results of the 4 cases for evaluation of the makespan.

Case 1: Random datasets
The makespan of HABC_LJF running on random datasets D 1 -D 3 was compared with those of ACO, PSO, and IPSO algorithms. The number of groups of submitted tasks was varied in each run from 100 to 1500 submitted tasks in an increment of 100 tasks. The average makespan for 300, 900, and 1,500 tasks in cloud computing within homogeneous and heterogeneous environments are shown in Tables 4 and 5, respectively. Actually, a higher number of tasks were run but the results are not shown here due to lack of space.
According to Table 4, HABC_LJF performed the best as the number of tasks was increased. Moreover, the minimum makespan, the maximum makespan, and the average makespan, all three of them were the lowest. The performance of HABC_LJF was outstanding in the homogeneous environment.
In addition, in order to observe the effect of the range of job size on performance scalability of the system, we evaluated the average makespan with three datasets that had different ranges of job size (D 1 -D 3 ). The results show that the HABC_LJF algorithm also outperformed the others for all size ranges tested in the homogeneous environment.
The results for the average makespan of HABC_LJF algorithm and the other algorithms with an increasing number of submitted tasks in cloud computing within a heterogeneous environment when used with random datasets are shown in Table 5. The performance of HABC_LJF was the best because its minimum makespan, maximum makespan, and average makespan were mostly the lowest in cloud computing within a heterogeneous environment. Furthermore, when datasets with different ranges of job size were used, HABC_LJF still outperformed the others in the same way that it did in homogeneous environment. Table 6 shows the makespan of every algorithm tested with datasets (D 4 -D 6 ) : random datasets with normal distribution. The results showed that the HABC_LJF used the lowest minimum makespan, the lowest maximum makespan, and the lowest average makespan than the other algorithms did in the homogeneous environment.

Case 2: Random data with a normal distribution
The makespan of the algorithms working within a heterogeneous environment when random datasets with normal distribution were used are shown in Table 7. The results show that for the datasets that had different ranges of job size, HABC_LJF outperformed the others in the same way as they did in a homogeneous environment except for the case of dataset D 4 and D 6 . For the case of dataset D 4 with the number of submitted tasks equaled to 900, the ACO_LJF gave the lowest minimum makespan. Meanwhile, the D 6 dataset with 900 submitted tasks in which ACO_LJF used the lowest minimum makespan and ACO_SJF used the lowest maximum     makespan. However, this makespan was not very different from that used by HABC_LJF. When the makespan for all cases were considered, HABC_LJF still outperformed the other algorithms. Tables 8 and 9 show the results obtained from using datasets (D 7 -D 9 )-random datasets with Right-Skewed Distribution-in homogeneous and heterogeneous environments, respectively. The experimental results indicate that HABC_LJF used the lowest minimum makespan, the lowest maximum makespan, and the lowest average makespan than the other algorithms did in the homogeneous environment. The results were the same as in Case 1.

Case 3: Random data with Right-Skewed Distribution
In the same direction, HABC_LJF outperformed the other two algorithms in a heterogeneous environment except when D 9 was used with the number of submitted tasks equaled to 900 and 1500 tasks. For the case of 900 tasks, ACO_FCFS used the lowest minimum makespan. For the case of 1500 tasks, ACO_LJF used the lowest maximum makespan. Nevertheless, in both cases, the minimum makespan used by ACO_FCFS and ACO_LJF were not very different from that used by HABC_LJF. Overall, HABC_LJF still outperformed them both.

Case 4: Random data with Left-Skewed Distribution
The makespan of HABC_LJF were compared with those of ACO, PSO, and IPSO algorithms running on Left-Skewed Distribution (D 10 -D 12 ) datasets. Their minimum, maximum, and average makespan in cloud computing within homogeneous and heterogeneous environments are shown in Tables 10 and 11, respectively.
The results in Table 10 show that HABC_LJF outperformed the other three algorithms in a homogeneous environment. The results were the same as in other case.
In the same direction, HABC_LJF outperformed the other three algorithms in a heterogeneous environment except for one case: when using D 11 dataset with 900 submitted tasks, the ACO_LJF gave the lowest maximum makespan but this makespan was not much different from that of HABC_LJF. When the makespan of all cases were considered, the HABC_LJF still outperformed the others.
In the second part, the performance of the HABC algorithm in terms of load imbalance was evaluated. Unbalanced workload for VMs can be avoided by balancing the workload during allocation. The datasets of various types were used as described in Table 3. Four cases of performance evaluation were considered according to the type of datasets used. The number of groups of submitted tasks was varied in each run from 100 to 1500 in an increment of 100 tasks. Performance evaluation was also done separately for the homogeneous and heterogeneous VM environments to obtain the average degree of load imbalance of 20 runs for each algorithm. The degrees of load imbalance in cloud computing within the homogeneous and heterogeneous environments are shown in Figures 2 and 3, respectively.
As shown in Figure 2, in order to consider the effect of different types of dataset on performance scalability of the system, we evaluated the average degrees of load imbalance with four datasets of different types: D 1 , D 4 , D 7 , and D 10 . The results show that Table 8 The comparison of the average makespan of the systems with HABC, ACO, PSO, and IPSO in a homogeneous environment with datasets D 7 -D 9 .     the HABC algorithm (HABC_FCFS, HABC_LJF, HABC_SJF) performed lower average degrees of load imbalance than any of the compared algorithms (PSO and ACO algorithms) in the homogeneous environment.

Dataset Task Variable HABC_LJF ACO_FCFS ACO_LJF ACO_SJF PSO_FCFS PSO_LJF PSO_SJF IPSO_FCFS IPSO_LJF IPSO_SJF
In the same direction, the results in Figure 3 showed that the HABC algorithm (HABC_FCFS, HABC_LJF, HABC_SJF) outperformed the other two algorithms in the heterogeneous environment.
In the third part, the performance of the HABC algorithm in terms of Standard Deviation (S.D.) was evaluated. In order to ensure that the tasks are equally distributed into VMs and the system is balanced workload.
We evaluated the S.D. with dataset D 1 in Table 3. The number of groups of submitted tasks was varied in each run from 100 to 1500 submitted tasks in an increment of 100 tasks. The S.D. for 300, 600, 900, 1200, and 1500 tasks in cloud computing within homogeneous and heterogeneous environments are shown in Tables 12 and 13, respectively. Table 12 shows the S.D. of all tested algorithms with datasets (D 1 ) in homogeneous environment. The results show that HABC algorithm has less S.D. values than other methods. In the same direction of heterogeneous environment in Table 13.
The result of the experiment indicated that the makespan and the degree of imbalance are slight difference. On the other hand, if considered the performance measurement using S.D. between the HABC algorithm and ACO algorithm are very different. The results show that HABC algorithm highly enhanced the S.D. compared to the other algorithms in cloud computing within homogeneous and heterogeneous environments. The goal is to achieve a balance between the resources in the system and to minimize the makespan time.
To summarize, even though all of the presented algorithms utilize a similar scheduling process based on a heuristic method. When they were compared, the HABC algorithm was able to show a better performance than those shown by ACO, PSO, and IPSO algorithms, especially in the case of using large job submitting first   (HABC_LJF). Moreover, the system still balanced the load of submitting tasks adequately with minimum makespan.

CONCLUSION
In this paper, to improve task scheduling and load balancing, an algorithm for VMs in cloud computing based on heuristic task scheduling called HABC for VMs in cloud computing within both homogeneous and heterogeneous environments is proposed. The HABC was implemented on a cloud computing model in order to optimize the process of task scheduling and load balancing of volumes of data. A detailed comparison between the performances of the proposed method and other compared algorithms including ACO algorithms, PSO algorithms, and improved PSO algorithms is also presented.
The experiments were conducted with four types of datasets in order to measure the performance of our algorithm in terms of minimum makespan, maximum makespan, average makespan, and degree of load imbalance. The results show that the HABC with Largest Job First heuristic algorithm (HABC_LJF) offers the best performance in scheduling and load balancing.
This novel-proposed approach can serve as a useful alternative for cloud computing within homogeneous and heterogeneous environments. However, this work was a simulation on a few datasets. In future works, we will further conduct similar experiments on larger datasets. We plan to apply this HABC method in other practical applications to real-world datasets and will explore the possibility of HABC to handle multiple job scheduling with different priorities.

CONFLICT OF INTEREST
The author declares that he has no conflict of interest against any company or institution.

ETHICAL STANDARDS
This research has not involved human participants and/or animals, except for the author contribution.