Self Scheduling:
- An idle processor requests for work.
- Master processor keeps record of available and assigned work.
Execution time
Speed up
where,
- Number of work items to be distributed
- Available processors
- Average execution time of a work item
- Dispatch time of work item
Replace P by N
Note: The dispatch time grows asymptotically with the number of parallel requests i.e. weak scaling
Chunk Scheduling
The overhead of self-scheduling can be reduced by chunking a fixed number of iterations together. Here is known as the chunk size. Execution Time
Speed-up
Note: Chunk Scheduling is times faster than self scheduling.
Guided Self Scheduling
Here the Chunk size keeps varying. Usually starts with a larger chunk and gets smaller over time. The chunks are allotted based on available compute (idling processor). This method has better load balancing.