Grid computing is a collection of computational and data resources, providing the means to support both computational intensive applications and data intensive applications. In order to improve the overall performance and efficient utilization of the resources, an efficient load balanced scheduling algorithm has to be implemented. The scheduling approach also needs to consider user demand to improve user satisfaction. This paper proposes a dynamic hierarchical load balancing approach which considers load of each resource and performs load balancing. It minimizes the response time of the jobs and improves the utilization of the resources in grid environment. By considering the user demand of the jobs, the scheduling algorithm also improves the user satisfaction. The experimental results show the improvement of the proposed load balancing method.
Grid computing is a new computing paradigm which provides massive heterogeneous resources for solving very large applications in science and engineering [
Task scheduling is a challenging task in grid environment because it is needed to exploit the capabilities of the grid resources. An efficient scheduling algorithm has to allocate the resources from various administrative domains to large number of tasks [
Scheduling algorithms are categorized as application centric and resource centric. Scheduling algorithms adopting resource centric objectives aim to improve the performance of the system such as resource utilization and throughput. Scheduling algorithms adopting application centric objectives aim to minimize the waiting time and makespan.
Generally, load balancing algorithms are divided into two categories such as static and dynamic. Static load balancing algorithms are used to allocate the resources to tasks based on the current load. Dynamic load balancing algorithms allocate or reallocate resources at runtime based on the current load of the resources [
Opportunistic load balancing (OLB) algorithm allocated the task to the next machine which is expected available in arbitrary order. This algorithm did not consider the expected execution time on the machine [
Min-min algorithm calculated expected completion time for all the jobs in all machines. Task with minimum expected completion time is allocated to a machine which has minimum completion time. This algorithm failed to consider idleness of the machine [
Max-min algorithm is similar to min-min algorithm. It finds the job with maximum expected completion time from set of unmapped jobs and allocates it to machine which has minimum completion time for the job [
Application demand aware algorithm considered the application’s requirement and allocated the jobs to the appropriate resources. But results show poor resource utilization [
Suffrage heuristic algorithm calculated the suffrage value by finding the difference between its best minimum completion time and its second best minimum completion time. The task with highest suffrage value is selected and allocated to the machine with the minimum completion time. The assigned task is deleted, and the completion times for all the remaining tasks are updated. This process is repeated until all tasks are assigned to machines [
Prioritized user demand aware algorithm allocated jobs to the machines by considering user requirements of jobs. It results in more user satisfaction and better makespan, but data movement is not considered [
UDDA algorithm considered both user requirements and data requirements of the job. It aims to reduce the overall execution time of the jobs in the machines [
Yagoubi and Slimani developed a layered algorithm in which a dynamic load balancing approach is implemented in grid computing. Load balancing is performed based on a tree model. It is supported for heterogeneity and scalability [
Ludwig and Maollem proposed two new distributed swarm intelligence inspired load balancing algorithms. One algorithm is based on ant colony optimization, and the other algorithm is based on particle swarm optimization [
Cao et al. designed a load balancing algorithm in combination with intelligent agents and multiagent approaches. This algorithm assumed two levels such as local grid and global grid. In local grid, each agent is responsible for scheduling and load balancing, and in global grid, agent acts as service provider [
Alharbi et al. proposed a simple load balancing algorithm in which load is equally distributed. This algorithm used expected completion time to schedule the jobs [
Even though there are many scheduling algorithms that focus on user deadline and load balancing, there is a scope for scheduling algorithms that focuses on both of these factors. The main contribution of this paper is that a new scheduling algorithm has been proposed which focuses on both user deadline consideration and load balancing. This algorithm is compared with the min-min algorithm which serves as a benchmark scheduling algorithm and user demand aware (UDDA) scheduling algorithm which is proposed in our previous work [
Since grid environment consists of heterogeneous resources which are owned by multiple administrative domains, an efficient task scheduling is required for allocating tasks to machines efficiently. Since grid resources are dynamic, an effective load balancing algorithm is required to maintain load at resources. Most of the early developed scheduling algorithms do not consider the user deadline to complete the jobs. To improve the user satisfaction, the deadline of the jobs has to be considered.
The architecture followed in this work is given in Figure
Proposed Architecture Model.
Users submit jobs in the form of gridlets to the machines. A gridlet is an entity which contains information such as length expressed in MI (million instructions), input file size (
The length of the gridlet is assumed to be calculated based on the number of instructions. The scheduling algorithm is applied to a batch of jobs submitted since it follows batch mode of scheduling, and the user deadline based selection policy is followed when jobs are waiting in queue at the scheduler.
The proposed scheduling algorithm mainly aims for effective resource utilization and minimized makespan. So it considers both application and system aspects. It considers user deadline, expected completion time, data transfer time, and load of each resource. This algorithm calculates the load at the different levels. Since machine and PEs are arranged very close to the resource, data transfer time to machine/PE is negligible, the resources are geographically distributed, and data transfer time to the resource is considered.
Users submit the jobs to the machines and add the jobs to unassigned list. Assign the jobs among the processing elements (PEs) of the machine with satisfied user demand using Algorithm Assign the jobs among the machines of the resource with satisfied user demand using Algorithm Assign the jobs among the resources with satisfied user demand using Algorithm
Begin While there are jobs in unassigned list do Select job For all resources do End for Calculate difference matrix such that where Classify the resources/machines/PEs using Algorithms Sort the list of resources/machines/PEs in ascending order based on DF Assign the job Update the load at each resource/machine/PE Remove the job i from unassigned list End While End
In this model, number of machines, number of tasks, and size of tasks are known prior. The following parameters are used in this algorithm.
When the user submits jobs at the machines, along with the information such as length, deadline, input, and output file size, machine schedules jobs to their processing elements which are capable of completing the jobs within user deadline. If there is no suitable PE, then the jobs will be forwarded to resources. Then resources will schedule the jobs to machines. If there is no suitable PEs found at all machines under that resource, then resources will forward the jobs to the resource broker which will schedule the jobs to other resources.
Load of the machine is calculated as follows:
Load of a resource is calculated as follows:
Since grid is a collection of dynamic resources from different administrative domains, the resources/machines/PEs can be online and offline from the grid. So the status (either online or offline) of the resource/machine/PE must be updated periodically. To perform load balancing, the state of the resource/machine/PE must be checked when a job arrives or status of the resource/machine/PE is changed. The state is classified into three types such as heavily loaded, normally loaded, and under loaded. To assign the state of resource/machine/PE, the threshold value is calculated at different levels. Threshold value for resource is calculated as follows:
Based on the threshold value of the load, the state is assigned for resource/machine/PE using the following criteria.
Algorithm
Begin For all resources if (RLoad < TRes) r.state = “underloaded” Add the resource to r.underloaded list else if (RLoad > TRes) r.state = “heavilyloaded” Add the resource to r.heavilyloaded list else r.state = “normallyloaded” End for End
Begin For all resources For all machines if (MLoad < TMac) m.state = “underloaded” Add the machine to m.underloaded list else if (MLoad > TMac) m.state = “heavilyloaded” Add the machine to m.heavily loaded list else m.state = “normallyloaded” End for End for End
Begin For all resources For all machines For all PEs if (PELoad < TPE) pe.state = “underloaded” Add it to underloaded list else if (PELoad > TPE) pe.state = “heavilyloaded” Add it heavilyloaded list. else pe.state = “normallyloaded” End for End for End for End
Begin if (Resource/Machine/PE is newly added) Calculate new threshold value at different levels Classify the resource/machine/PE based on Algorithms Endif if (Resource/Machine/PE goes down) Retrieves the jobs which are allocated to the resource/Machine/PE and added to unassigned list Calculate new threshold value at different levels Classify the resource/machine/PE based on Algorithms Endif End
Begin Select a job from the resource/machine/PE which goes down Find the resources/machines/PEs from under loaded list which satisfy user demand for the selected job Schedule the jobs among selected resources/machines/PEs using Algorithm End
The proposed HLBA algorithm is simulated using gridsim5.0 toolkit. It is a more popular tool for modeling the resources and scheduling the jobs. It is also used to analyze algorithms on large scale distributed systems of heterogeneous resources. This tool has the facility for creating different classes of heterogeneous resources that can be aggregated using grid resource broker. This tool can be used for solving computational and data intensive applications.
The proposed HLBA algorithm is simulated for varying number of jobs from 100 to 600 in 16 resources. The characteristics of jobs and resources in grid hierarchy are given in Table
Characteristics of grid resources and jobs.
Number of resources |
|
Number of machines | 1–5 |
Number of PE’s per machine |
|
Number of jobs |
|
The simulation is carried out in two ways. Firstly, the number of resources is kept as 16, the number of jobs is varied from 100 to 600, and the makespan, hit rate, and resource utilization are measured. Secondly, the number of jobs is considered as 512, and the number of resources is considered as 16 which is the benchmark for scheduling algorithms to evaluate their efficiency. The simulation results for these two ways are discussed in Results and Discussion section.
The performance of the proposed algorithm is evaluated using the parameters such as makespan, hit rate, miss rate, and resource utilization. Makespan is defined as maximum of completion time of the jobs at all resources:
The utilization of the resources is calculated using the following formulae:
Average resource utilization is as follows:
Hit rate is defined as number of jobs completed within user deadline:
Miss rate is defined as number of jobs that could not be completed within user deadline:
The result of the proposed load balancing algorithm is analyzed and compared with min-min and UDDA algorithms. The factors such as resource/machine heterogeneity and job heterogeneity are considered. The improvement of the proposed algorithm is proved by comparing makespan, hit rate, miss rate, and resource utilization. The simulation results have been taken from various test cases. The proposed algorithm generates better results in most of the test cases. Figures
Performance analysis based on makespan (sec).
Performance analysis based on hit rate (%).
Performance analysis based on miss rate (%).
Performance analysis based on average resource utilization (%).
In Figure
In Figure
The performance analysis of the proposed HLBA and other algorithms min-min and UDDA based on the benchmark values for 512 jobs and 16 resources are elaborated in Figures
Performance analysis based on makespan (sec).
Performance analysis based on hit rate (%).
Performance analysis based on average resource utilization (%).
Figures
In this paper, hierarchical load balancing approach with user demand aware scheduling algorithm is proposed. This algorithm considers the dynamicity of the resources/machines/PEs, resource/machine heterogeneity, and task heterogeneity. Since this algorithm considers load of resource/machine/PE, the utilization of the resource/machine/PE is improved. By considering the user deadline of the job, the number of jobs completed within user deadline (hit rate) is increased, and user satisfaction is improved. When comparing with other scheduling algorithms, the overall system performance is improved in the proposed scheduling algorithm. In future, some other user demands such as execution cost may be considered, and each machine can be thought as multiprogrammed system. In addition to that some more technologies can also be introduced such as GridFTP and fault tolerant techniques.