Scheduling and Load Balancing
Scheduling and Load Balancing
Scheduling:
Scheduling in parallel and distributed systems refers to the process of allocating resources
(processors, memory, network bandwidth) to tasks in order to optimize the execution time
of parallel programs.
It plays a crucial role in achieving high performance and efficiency in these systems, as it
ensures that tasks are assigned to the most suitable resources and that they are executed in
an efficient and timely manner.
The techniques that are used for scheduling the processes in distributed systems are as
follows:
• The scheduling algorithms that require prior knowledge about the properties and
resource requirements of a process submitted by a user put a burden on the user.
Hence, a good scheduling algorithm does not require prior specification regarding the
usersubmitted process.
• A good scheduling algorithm must exhibit the dynamic scheduling of processes as the
initial allocation of the process to a system might need to be changed with time to
balance the load of the system.
• The algorithm must be flexible enough to process migration decisions when there is
a change in the system load.
• The algorithm must possess stability so that processors can be utilized optimally. It is
possible only when thrashing overhead gets minimized and there should no wastage
of time in process migration.
• An algorithm with quick decision making is preferable such as heuristic methods that
take less time due to less computational work give near-optimal results in comparison
to an exhaustive search that provides an optimal solution but takes more time.
• A good scheduling algorithm gives balanced system performance by maintaining
minimum global state information as global state information (CPU load) is directly
proportional to overhead. So, with the increase in global state information overhead
also increases.
2. Load Balancing in Distributed Systems:
• The Load Balancing approach refers to the division of load among the processing
elements of a distributed system.
• The excess load of one processing element is distributed to other processing elements
that have less load according to the defined limits.
• The load is maintained at each processing element in such a manner that neither it
gets overloaded nor idle during the execution of a program to maximize the system
throughput which is the ultimate goal of distributed systems.
• This approach makes all processing elements equally busy thus speeding up the entire
task leads to the completion of the task by all processors approximately at the same
time.
Dynamic Load Balancing Algorithm takes into account the current load of each node or
computing unit in the system, allowing for faster processing by dynamically redistributing
workloads away from overloaded nodes and toward under loaded nodes.
Dynamic algorithms are significantly more difficult to design, but they can give superior
results, especially when execution durations for distinct jobs vary greatly.
Furthermore, because dedicated nodes for task distribution are not required, a dynamic load
balancing architecture is frequently more modular.
Many issues need to be taken into account while designing Load-balancing Algorithms: