next up previous
Next: Farming Up: Load Balancing Previous: Need for Dynamic

Dynamic Load Balancing

Dynamic load balancing in an application can address these concerns. Dynamic load balancing can be implemented in a heterogenous environment either at the operating system level or at a process level.

  1. At the operating system level, the emphasis is to keep all the processors busy all the time. This is accomplished by process migration from a heavily loaded node in the network to a lightly loaded one. This raises issues about doing this effectively at runtime on a heterogenous collection of nodes. While it may be easy to incorporate such a scheme for a ``state-less'' server process by killing one instance and starting another instance on the other node (different binaries being used for dissimilar processors and operating systems), it can be difficult to migrate a process at run-time when the the state of a process needs to be maintained. The process migration approach can be seen in systems such as Condor.

  2. At the process level, it is important to keep all the user tasks busy all the time. If the data to be processed is divided into independent work packets, then the load balancing scheme at the process level can be implemented by giving more work packets to the tasks on faster processors and less work packets to the slower ones. This way, the data can be distributed on the basis of the processing capacity of a particular task. This approach takes into account the differences in processing times for different data packets. The aim of the paper is to implement a dynamic load balancing scheme under PVM using this approach by constructing process farms.


Sameer Shende