Loop scheduling
Encyclopedia
In parallel computing
, loop scheduling is the problem of assigning proper iterations of parallelizable loops among n processors to achieve load balancing
and maintain data locality
with minimum dispatch overhead.
Typical loop scheduling methods are:
Parallel computing
Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently . There are several different forms of parallel computing: bit-level,...
, loop scheduling is the problem of assigning proper iterations of parallelizable loops among n processors to achieve load balancing
Load balancing (computing)
Load balancing is a computer networking methodology to distribute workload across multiple computers or a computer cluster, network links, central processing units, disk drives, or other resources, to achieve optimal resource utilization, maximize throughput, minimize response time, and avoid...
and maintain data locality
Locality of reference
In computer science, locality of reference, also known as the principle of locality, is the phenomenon of the same value or related storage locations being frequently accessed. There are two basic types of reference locality. Temporal locality refers to the reuse of specific data and/or resources...
with minimum dispatch overhead.
Typical loop scheduling methods are:
- static even scheduling: evenly divide loop iteration space into n chunks and assign each chunk to a processor
- dynamic scheduling: a chunk of loop iteration is dispatched at runtime by an idle processor. When the chunk size is 1 iteration, it is also called self-scheduling.
- guided scheduling: similar to dynamic scheduling, but the chunk sizes per dispatch keep shrinking until reaching a preset value.