next up previous contents
Next: Bibliography Up: General Performance Considerations Previous: Task Granularity

Load Balancing

In a multiuser network environment it has been proved that load balancing can be the single most important performance issue (Geist et al., 1993; Shivaratri et al., 1992). When many tasks are collaborating in solving a single problem, and if one of them is delayed, then the whole system will be delayed because the remaining tasks will be waiting for the delayed task at synchronizing points. Load balancing techniques allow distributed applications to take care of this situation.

The simplest method is the static load balancing: the problem is divided into tasks which are assigned to processors only once, before the application has started or as an early step of it. On a lightly loaded network, this strategy can be quite effective. This is the method employed in this work for the PTidal domain decomposition.

Another possible strategies is dynamic load balancing: usually a "master" program creates and holds a pool of "slave" tasks. This method is better suited to applications which require no communication between slave tasks and only communication to the master and files. This is not the case of the PTidal program.

A third load balance scheme requires that at some predetermined time all the tasks reexamine and redistribute their work loads. This method obviously is best suited to iterative programs where synchronizing points are easy to find. However, in real applications it's quite hard to implement (Geist et al., 1993).


next up previous contents
Next: Bibliography Up: General Performance Considerations Previous: Task Granularity
Elias Kaplan M.Sc.
1998-07-22