A dynamic load balancing protocol moves tasks between processors, in an attempt to minimize the overall execution time of the program. The dynamic load balancer must make the following decisions:
The decision usually has to be made with incomplete information, since it is impossible to predict the future. In the following section, we summarize the common approaches to these problems and outline the trade-offs.