A serious difficulty in concurrent programming of a distributed system is how to deal with scheduling and load balancing of such a system which may consist of heterogeneous computers. Load balancing comes under the area of resource management. In this section we describe the detail overview of the load balancing is a distributed environment in the scheduling perspectives.
Load Balancing Overview
With the great advancements in computer technology and the availability of many distributed systems, the problem of load balancing in distributed systems has gained a higher attention and importance. A dynamic load balancing algorithm assumes no a priori knowledge about job behavior or the global state of the system, i.e., load balancing decisions is solely based on the current status of the system. The development of an effective dynamic load balancing algorithm involves many important issues: load estimation, load levels comparison, performance indices, system stability, amount of information exchanged among nodes, job resource requirements estimation, job’s selection for transfer, remote nodes selection, and more.
Outstanding progress in computer technology has lead to the rise of the demand of high speed processing and the need of high scalability, availability and rapid response. This resulted in use of parallel and distributed computing systems where more than one processor processes the job simultaneously. One of the main research issues in parallel and distributed system is effective strategy to distribute workload among multiple processors. Load balancing is used for minimizing the response time, maximizing the throughput, and to avoid the overload. Load balancing is to ensure that every processor in the system does approximately the same amount of work at any point of time.
Load Balancing Significance
The explosion of Internet has increased the amount of the online information and services available for the users and this growing information and services has placed distress on the Internet infrastructure. Any load balancing algorithm balances the load by transferring it from heavy loaded node to the lightly loaded node so as to minimize execution time. Load balancing makes every processor equally busy and make them finish the work approximately at the same time. In parallel and distributed systems more than one processor process parallel programs. The amount of processing time needed to execute all processes assigned to a processor is called workload of a processor. The amount of processing time needed to execute all processes assigned to processor is called load of a processor.
The main goal behind distributing load is to distribute process so as to maximize throughput, maintain stability, minimize resource utilization, minimize computational time, minimize communication delays and fault tolerance.
Load Balancing Definition
Load balancing is the process of distribution or redistribution of load among processor therefore improving the performance of the system.
Figure 1 Demonstration of Load Balancing
Figure 1 demonstrates the concept of load balancing. In computing, load balancing distributes workload across multiple computing resources, such as computers, a computer cluster, network links, or central processing units. Load balancing aims to optimize resource use, maximize throughput, minimize response time, and avoid overload of any single resource. Load balancing is the process of roughly equalizing the work load among all nodes of the distributed system. It strives to produce a global improvement in system performance. Load balancing is a mechanism that enables jobs to move from one computer to another within the distributed system. This creates faster job service e.g., minimize job response time1 and enhances resource utilization.
Need of Load Balancing
A distributed system contains number of processors working independently with each other and linked by communication channel. Some are not linked with any communication channel. Each processor has an initial load that is the amount of work to be performed, and each may have a different processing capacity. The workload has to be evenly distributed among all processors based on their processing speed so that time to execute all tasks gets minimized and idle time of each processor can be reduced. This is why we need load balancing. Load imbalance is also a main problem in data parallel applications and here also it mainly occurs due to the uneven distribution of data among the various processors in the system. Without good load distribution strategies and techniques, we cannot aim to reach good speedup and good efficiency.
 Ali M. Alakeel, “A Guide to Dynamic Load Balancing in Distributed Computer Systems”, IJCSNS International Journal of Computer Science and Network Security, Volume 10 No.6, June 2010.
 Sharma, Eep, Sarabjit Singh, and Meenakshi Sharma, “Performance Analysis of Load Balancing Algorithms”, in proceeding of 38th World Academy of Science, Engineering and Technology, 2008.
 Abhijit A. Rajguru, S.S. Apt” A Comparative Performance Analysis of Load Balancing Algorithms in Distributed System using Qualitative Parameters”, International Journal of Recent Technology and Engineering (IJRTE), Volume-1, Issue-3, August 2012.
 Mohsen and HosseinDelda, “Balancing Load in a Computational Grid Applying Adaptive, Intelligent Colonies of Ants”, Informatica 32, PP. 327–335, 2008.