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
    center 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.