What are the difference between dynamic and adaptive task allocation?
Answers
The difference between static and dynamic (I'll get to adaptive in a second)
load distributing (or global scheduling) algorithms is the use of system
state information. While static algorithms make no use of such information,
dynamic algorithms use such information to improve individual job transfer
decisions.
Adaptive algorithms constitute a subset of dynamic algorithms. Adaptive
algorithms go further in their use of system state information: Such
information may be used to modify the parameters of the algorithm, or even to
choose which load distributing strategy is used. For example, you might find
that load distributing algorithm A is best under system conditions X, while
algorithm B is better under conditions Y. An adaptive algorithm might choose
which strategy to pursue based on whether the conditions it observes are closer
to X or Y. As a more detailed example, sender-initiated algorithms tend to
perform better than receiver-initiated algorithms when the overall system load
is low, though receiver-initiated algorithm performs better when the system
load is high (sender-initiated algorithms are disastrous at high loads). An
adaptive algorithm might choose to follow a sender-initiated strategy when the
load is low, but switch to a receiver-initiated strategy if the load becomes
high.
Examples of adaptive algorithms can be found in:
N. G. Shivaratri and P. Krueger, "Two Adaptive Location Policies for Global
Scheduling Algorithms," Proc. 10th International Conference on Distributed
Computing Systems, pp. 502-509 (May 1990).