To generalize the discussion, the assumption is that there is a set of tasks and each task has many subtasks with precedence constraints. Each subtask is allowed to be processed on any given available resource [20]. A cloud resource has a given level of capacity (e.g., CPU, memory, network, storage) [21]. A subtask is processed on one resource at a time, and the given resources are available continuously.
In the process of resource allocation in a cloud computing environment, the application of ICSA to the general process is as follows:
Inputs: Let R = (R1, R2, …, R
j
, …, R
m
) be the set of m available resources which should process n independent tasks denoted by the set T = (T1, T2, …, T
i
, …, T
n
), i = 1, 2, …, n, j = 1, 2, …, m.
All the resources are unrelated and parallel, and each task T
i
can be executed on any subset R
j
∈ R of available resources.
Outputs: The output is an effective and efficient resource allocation scheme, including scheduling tasks to appropriate resources and makespan.
Constraints: The execution time of each task on a resource depends on the actual situation, and the value cannot be fixed in advance [22]. Each task must be completed without interruption once started, and resources cannot perform more than one subtask at a time.
Objectives: The main objective is to improve energy efficiency of the data center and minimize makespan so as to achieve an energy-efficient schedule.
Since many real-world design or decision making problems involve simultaneous optimization of multiple objectives [23], we designed a resource allocation optimization model that will fully integrate the two factors of energy-efficient optimization and makespan optimization.
3.1 Energy-efficient optimization
In this section, we propose the energy-efficient optimization model based on the dynamic voltage and frequency scaling (DVFS) [24] that the capacitive power of a given resource node depends on the voltage supply and resource frequency. Dynamic power consumption is done by the node capacitance caused by charging and discharging; its basic expressions can be defined as follows [25, 26]:
where γ = A × C, A is the flip frequency that denotes the number of switches per clock cycle, C is the load capacitance, v is the supply voltage, and f is the frequency of the resource node.
Definition 1 Assume that si represents the voltage supply class of resource r
i
, and si has k DVS level; then the supply voltage and frequency relationship matrix of si can be described as follows:
where v
k
(i) is the voltage supply for resource r
i
at level k, k is the number of levels in the class si, and f
k
(i) denotes the working frequency at the same level k, 0 ≤ f
k
(i) ≤ 1.
Definition 2 Assume that si represents the voltage supply class of resource r
i
, and CT(i, j) are the expected completion times for task T
j
on resource r
i
; then the completion time for task T
j
on resource r
i
can be formulated as follows:
(2)
Definition 3 Assume that v
k
(i)
j
is a voltage supply value, f
k
(i)
j
is a corresponding working frequency, and CT(i, j) is the estimated completion time of task T
j
on resource r
i
; then the energy utilized for completing task T
j
on resource r
i
at the DVFS level of k when the supply strategy is si can be defined as follows:
(3)
where γ = A × C is a intrinsic property for a given resource.
Definition 4 Assume that Idle
i
denotes the idle time of resource r
i
, L(j) denotes a set of DVFS levels used for the tasks assigned to resource r
i
; then the cumulative energy utilized by the resource r
i
for the completion of all tasks assigned to the resource can be defined as follows:
(4)
where vmin(i) and fmin(i) represent the voltage and frequency when resources r
i
transition to sleep mode in the idle time, respectively, and λ is the load factor of resources r
i
.
3.2 Makespan optimization
The makespan is the overall task completion time, which is the time difference between the start and end of a sequence of tasks on a resource [27]. Cloud computing deals with assigning computational tasks on a dynamic resource pool according to different requirements from a user request. The proposed makespan is the time that comprises overall task completion on resources including receiving, processing, and waiting time.
We denote the completion time of task T
i
on resource R
j
as C
ij
. The main purpose is to reduce the makespan that can be denoted as Ms. Then, the Ms can be defined as follows:
(5)
The proposed algorithm chooses the resources based on the least makespan.
3.3 Multi-objective optimization model
In this section, we combine energy-efficient optimization and makespan optimization and propose a multi-objective optimization model for resource allocation in green cloud computing.
(6)