Load balancing distributes computational work across workers so no worker is left with an inefficient share. When task workloads vary, choosing how to group and assign tasks can be difficult; heuristics can help find efficient groupings and mappings. section 7.9 section 13.13
Think of task scheduling as conducting an orchestra: a scheduler coordinates workers by assigning tasks, tracking progress, and collecting results. A central scheduler can give tasks to idle workers, but task allocation is a compromise between keeping work independent to reduce communication and using global knowledge to improve load balance. section 13.13
Dynamic allocation is useful when the number and sizes of files are unknown in advance, so an optimal assignment cannot be guaranteed before work begins. Its efficiency depends on the number of workers and the costs of receiving and completing tasks. section 13.13













