## 3 Materials and Methods
### Workflow and Cloud Model  
Workflow applications consist of a set of tasks with dependencies, i.e., execution and data dependencies. In the prior case, the tasks have a parent-child relationship. A child task cannot start execution until all parents of that task have completed the execution. In the latter case, the tasks share data, i.e., the output generated by some tasks becomes the input for other tasks. These dependencies make it difficult for a scheduler to effectively schedule resources for workflow applications. Workflow tasks are represented as a directed acyclic graph (DAG), e.g., D (V, E), where E represents edges of the graph and V represents the vertices. Cloud computing consists of virtualized resources, which are referred to as VMs. The goal of a scheduling algorithm is to allocate \(R_{i}\) to \(W_{j}\), where \(R_{i}\) is the \(i\)th resource from a pool of VMs (\(VM_{1},VM_{2},VM_{3},\ldots,VM_{n}\)) and \(W_{j}\) is the workflow application (\(W_{i},W_{2},W_{3},\ldots,W_{m}\)). The goal is to minimize the energy consumption and execution time with a balanced load among resources. The resources have pre-allocatedcapacities of processing, memory, storage, bandwidth, etc. The processing capacity \(C_{i}\) of a resource \(VM_{i}\) is computed with the number of processing elements (PEs) and the MIPs of each PE, as shown in Equation (1). The resources have pre-allocated capacities of processing, memory, storage, bandwidth, etc. The processing capacity \(C_{i}\) of a resource \(VM_{i}\) is computed with the number of processing elements (PEs) and the MIPs of each PE, as shown in Equation (1). \[C_{i}=(PE_{\times}MIPS_{i}) \tag{1}\]  
The capacity of \(n\) resources or VMs is calculated with Equation (2). \[C=\sum_{i=1}^{n}C_{i} \tag{2}\]  
Each VM has a resource utilization at a particular time, which is referred to as the load of the VM. The load is calculated with Equation (3), where \(TL\) is the total length of the tasks being processed by \(VM_{i}\), and \(C_{i}\) is the capacity of \(VM_{i}\). \[L_{vmi}=\frac{TL}{C_{i}} \tag{3}\]  
Equation (4) is used to calculate the load \(L\) of all VMs. \[L=\sum_{i=1}^{n}L_{vmi} \tag{4}\]  
Load balancing is measured as the load among different nodes in the cloud environment, as shown in Equation (5). \[\sigma =\sqrt{\frac{\sum_{i=1}^{n}(L_{vmi}-\bar{L})^{2}}{n}} \tag{5}\]  
where \(L_{vmi}\) is the load of \(VM_{i}\), \(\bar{L}\) is the average load of all VMs, and \(n\) is the number of VMs. In cloud computing, the energy consumption is strongly influenced by the utilization of resources. The utilization can be calculated with Equation (6). \[U=\alpha\frac{\sum_{i=1}^{n}c_{i}}{C}+\beta\frac{\sum_{i=1}^{n}m_{i}}{M} \tag{6}\]  
where \(n\) is the number of VMs running on host \(h\), and \(c_{j},m_{j}\) refer to the computing and memory allocated to \(VM_{i}\). In Equation (6), \(C\) and \(M\) are the total processing capability and memory of the host, and \(\alpha\) and \(\beta\) are the weight parameters of each resource. The energy consumption can be calculated with Equation (7), where \(k\) represents the operational energy consumption, i.e., the idle mode. \(E_{max}\) represents the energy consumption during the peak utilization of the processors, and \(U\) represents the utilization of the resources of the host calculated with Equation (6). \[E_{c}=E_{idle}+(E_{max}-E_{idle})\times U \tag{7}\]  
Workflow tasks may need data for processing. The completion time of the workflow includes both the processing time and the time consumed in obtaining the required data. Equation (8) is used to calculate the completion time of task \(t_{i}\). \[Time(t_{i})=Time((Trans_{t_{i}},t_{j})+Time_{E}(t_{i},VM_{k})) \tag{8}\]In Equation (8), \((Trans_{t_{i}},t_{j})\) is the time consumed by transmitting data from task \(t_{i}\) to \(t_{j}\), and \(Time_{E}(t_{i},VM_{k})\) is the execution time of \(t_{i}\) on \(VM_{k}\). Both parameters are calculated with Equations (9) and (10), respectively.