  A parallel computer system is a collection of processing elements that
communicate and cooperate to solve large computational problems efficiently. To
achieve this, at first the large computational problem is partitioned into
several tasks with different work-loads and then are assigned to the different
processing elements for computation. Distribution of the work load is known as
Load Balancing. An appropriate distribution of work-loads across the various
processing elements is very important as disproportional workloads can
eliminate the performance benefit of parallelizing the job. Hence, load
balancing on parallel systems is a critical and challenging activity. Load
balancing algorithms can be broadly categorized as static or dynamic. Static
load balancing algorithms distribute the tasks to processing elements at
compile time, while dynamic algorithms bind tasks to processing elements at run
time. This paper explains only the different dynamic load balancing techniques
in brief used in parallel systems and concluding with the comparative
performance analysis result of these algorithms.
