We evaluate the performances of the algorithms under homogeneous and heterogeneous cloud data center environments. The two algorithms, namely, BGWO-VMP and DGWO-VMP, are compared to other algorithms, namely, FFD [

45], OEMACS [

26], RGGA [

19], ACO [

39], MACO [

40], HACOPSO [

41], and PSO [

42], in terms of efficiency. FFD is classified as a deterministic algorithm and yields a result that is equal to or less than 11/9* OPT+1. Therefore, FFD can represent both heuristic and deterministic solutions to the NP-hard problems. A comparison of SA and GA for solving VMP is proposed in [

46]. The authors show that the GA-based method slightly outperforms the SA-based method. Thus, we compared our approach against a GA-based algorithm, RGGA [

19], not an SA-based algorithm, [

36]. In addition, GWO is a population-based algorithm as well as GA, where SA is a single solution based algorithm.

#### 4.1. Bottleneck of a Resource Homogeneous Environment

To evaluate the efficiency of BGWO-VMP and DGWO-VMP, we adopt the dataset that was proposed in [

26]. The dataset of the VMs and PMs in the cloud data center has a bottleneck resource. This test is more interesting and difficult than the typical test, in which the ratio of the total requirements of CPU and memory is 10:9. Eight instances have been created, which have sizes that range from 100 to 2000 and are numbered from A1 to A8. Each PM has a 16-core CPU and 32 GB RAM. Each VM has a CPU requirement of 1-4 cores and a memory requirement of 1-8 GB, which are randomly generated from discrete uniform distributions.

The probability of 4-core VM is 0.25, and that of 7 or 8 GB VM is 0.125. In this case, the CPU is the bottleneck resource and the ratio of the CPU and RAM requirements is approximately 10:9. The optimal solution in a random generation is unknown. Consequently, a lower bound on the optimum solution can be estimated as the maximum ratio of the sum of the VM requirements to the sum of the PM capacities, which depends on the dataset that is generated by the discrete uniform distributions.

Table 1 lists the results of the algorithms. BGWO-VMP, DGWO-VMP, and OEMACS yield the best solutions. However, BGWO-VMP and DGWO-VMP yield the best result for most of the instances. Specifically, BGWO-VMP and DGWO-VMP yield the best results for problems of larger size, which is observed for instances A6, A7, and A8. Hence, BGWO-VMP and DGWO-VMP outperform the other compared methods.

Figure 3 shows the number of active PMs that are used to host the largest two sets of VMs: A7 and A8. BGWO-VMP and DGWO-VMP yield the best results.

Figure 4 shows the mean utilizations of CPU and RAM for active PMs on instance A8. The bottleneck resource is the CPU, of which the utilization is approximately 100% by BGWO-VMP and DGWO-VMP, compared to 90% utilization of RAM. Hence, the generated VMs are balanced on PMs. Thus, both resources are utilized to maximum capacity. OEMACS have the same utilizations of CPU and RAM, where the CPU and RAM are almost fully utilized. BGWO-VMP and DGWO-VMP yield an efficient distribution compared to other algorithms.

#### 4.2. Large-Scale Heterogeneous Environmentt

In a real cloud computing data center, all PMs are often heterogeneous. In contrast to the first test, in which the PMs were homogeneous, this test considers heterogeneous PMs and CPU-intensive and RAM-intensive VMs. Two types of PMs, namely, type ${t}_{0}$, which has a 16-core CPU, 32 GB RAM, and ${P}_{max}=215$ W, and type ${t}_{1}$, which has a 32-core CPU, 128 GB RAM, and ${P}_{max}=300$ W, are used. We generate $9m/10$ PMs of type ${t}_{0}$ (m VMs) and $m/10$ PMs of type ${t}_{1}$. The rationale behind this is to force the placement strategy to use both types because the number of PMs of type ${t}_{1}$ is not sufficient for hosting all VMs. Problem instances of five sizes, which are numbered from B1 to B5, are generated by discrete uniform distributions over $\left[1,8\right]$ for CPU and $\left[1,32\right]$ for memory. The bottleneck resource in this datacenter is the memory.

In

Table 2, the poorest result among all heuristic algorithms is obtained by FFD for all instances except B8, where the worst result is obtained by the MACO algorithm.

The MACO algorithm obtains the second worse result after the FFD for all instances; hence, this algorithm is not suitable for the heterogeneous environment. Moreover, when the size of the problem increases, the result of MACO decreases in quality. DGWO-VMP produces a satisfactory result; however, this result is worse than those of RGGA, OEMACS, and BGWO-VMP.

The BGWO-VMP algorithm yields the best result for hosting the VMs on PMs comparing to OEMACS and RGGA. BGWO-VMP yields the best result on (B2, B3, B5), where only 43, 64, and 105 PMs are used to host 200, 300, and 500 VMs, respectively. According to the average number of active PMs for thirty independent runs on each instance, the BGWP-VM algorithm typically yields the best results. The design of the BGWO-VMP algorithm and its update stage provide a satisfactory diversity of solutions, where the VM visits most of the possible PMs, which facilitates the hosting of the VMs on the minimal number of PMs with minimal waste of resources.

Figure 5 shows the number of active PMs for the largest two instances, namely, B4 and B5, in a heterogeneous environment. The best results for B4 were obtained by OEMACS, where only 81 active PMs are used to host 400 VMs. For B5, the best results were obtained by BGWO-VMP, followed by OEMACS, where only 105 and 107 PMs are used to host 500 VMs.

Figure 6 shows the average utilizations of all active PMs and of type 1 and type 2 PMs. The FFD algorithm has the lowest resource utilization, where FFD assigns VMs without maximizing the resource utilization or balancing the resource utilization for active PMs. According to the gap between the CPU and RAM utilizations, the distribution of FFD is poor. PSO assigns the VMs in the same way and produce substantial residual capacity for both types of PMs. The ACO, MACO, and HACOPSO algorithms yield better improvements than the FFD and PSO algorithms. However, the gap between the CPU and RAM utilizations can be used to decrease the number of active PMs with a satisfactory distribution for VMs.

BGWO-VMP, OEMACS, and RGGA produce satisfactory distributions by exploiting the resources to a high level. However, for the BGWO-VMP algorithm, the CPU and RAM utilizations of type 1 PMs are the highest with a very good balance between them compared to OEMACS and RGGA. In addition, the CPU and RAM utilizations of type 2 PMs are lower compared to OEMACS and RGGA; hence, the BGWO-VMP algorithm prefers to host VMs on type 1 PMs to the maximum extent and use the type 2 PMs to host the remaining VMs. The gap between the CPU and RAM utilizations of type 2 PMs for the BGWO-VMP algorithm is due to the RAM being the bottleneck resource that limits the consolidation and the balance level. In other words, BGWO-VMP obtains the highest consolidation and a better balance of VMs, which reduces the number of active PMs.

For DGWO-VMP, the CPU utilization of type 1 PMs is higher compared to the OEMACS algorithm, while the CPU utilization of type 2 PMs is lower compared to OEMACS. DGWO-VMP obtains a good balance between the CPU and RAM utilizations but leaves more residual capacity than OEMACS. This results in an increase in the number of active PMs for the DGWO-VMP algorithm compared to OEMACS.

#### 4.4. Further Analysis of BGWO-VMP and DGWO-VMP

In this section, we study the influences of the number of wolves involved in hunting the prey and the number of iterations on the quality of the solution. We begin our investigation with the number of wolves. We vary the number of wolves from 5 to 30 with a step size of 5. The number of iterations is set to 60. We chose A1 and A8 from the homogeneous environment tests and B1 and B5 from the heterogeneous environment tests. The average number of active PMs for each number of wolves is shown in

Figure 9 for both BGWO-VMP and DGWO-VMP.

Figure 9a,b shows the number of active PMs for the BGWO-VMP and DGWO-VMP algorithms, which remain constant with the increase in the number of wolves for A1. Both algorithms yield the best results with the minimal number of wolves. For A8, DGWO yields the best result faster than BGWO-VMP with 5 wolves, and the result is slightly improved when we increase the number of wolves. BGWO-VMP starts with a large number of active PMs with 5 wolves, improves its result to a minimum number of active PMs with 20 wolves, and becomes stable. The discrete improvement is faster than the binary, but the binary is more robust.

Figure 9c,d shows the numbers of active PMs for the BGWO-VMP and DGWO-VMP algorithms in the heterogeneous environment. For B1, both algorithms start with nearly the same result with 5 wolves and DGWO-VMP converges faster than BGWO-VMP. However, the results of both algorithms continuously improve as the number of wolves increases. For B5, BGWO-VMP obtains its best result with 5 wolves, which is superior to that of DGWO-VMP. DGWO-VMP improves its result faster than BGWO-VMP, which gradually improves its result as the number of wolves increases. With 20 wolves, the result of BGWO-VMP utilizes 105 PMs and that of DGWO-VMP utilizes 110 PMs.

We conclude that the results of both of the algorithms improve as the number of wolves increases; however, BGWO-VMP is more stable than DGWO-VMP. Moreover, the results are quickly improved from 5 to 20 wolves and change slightly from 20 to 30 wolves.

The results of the investigation about changing in the number of iterations on the number of active PMs is shown in

Figure 10. We consider A8 from the homogeneous environment and B5 from the heterogeneous environment as examples for this study. We vary the number of iterations from 10 to 100 with a step length of 10. For A8, BGWO-VMP starts with many active PMs with 10 iterations, in contrast to DGWO-VMP, which starts with few active PMs and the same number of iterations. For BGWO-VMP, the best result is obtained after 60 iterations and becomes stable, as shown in

Figure 10a. For DGWO-VMP, the best result is obtained after 50 iterations and becomes stable, as shown in

Figure 10b. Hence, when the number of iterations increases, the number of active PMs decreases for both algorithms. However, BGWO-VMP requires more iterations than DGWO-VMP, which makes DGWO-VMP faster than BGWO-VMP in terms of its design and the number of iterations.

For B5, BGWO-VMP begins with fewer active PMs than DGWO-VMP with 10 iterations. Then, the number of active PMs gradually decreases as the number of iterations increases until the best result of BGWO-VMP is obtained after 70 iterations, as shown in

Figure 10a. For DGWO-VMP, the number of active PMs decreases as the number of iterations increases and its best result is obtained after 50 iterations, as shown in

Figure 10b. However, BGWO-VMP requires more iterations than DGWO-VMP in both the homogeneous and heterogeneous environments and obtains fewer active PMs.

From the results of this study, we conclude that BGWO-VMP outperforms DGWO-VMP in solving the VMP optimization problem. BGWO-VMP represents the VMP problem solution as a two-dimensional array, while DGWO-VMP utilizes a one-dimensional array for the same purpose. Thus, the former obtains its solution over a wider search space in comparison to the latter. However, the convergence time of BGWO-VMP is increased. DGWO-VMP is faster than BGWO-VMP. The running time of BGWO-VMP is approximately an order of magnitude longer compared to the OEMACS method on average; BGWO-VMP is approximately twice as slow as OEMACS on average. OEMACS reported results that are based on five ants and use approximately five iterations, while B/D-GWO-VMP reported results that are based on 20 wolves and use 100 iterations. This exemplifies the time difference between the proposed method and the most efficient state-of-the-art method. For instance, the running times for B3 are 1.1, 0.7, and 0.45 s for BGWO-VMP, DGWO-VMP, and OEMACS, respectively.