master/worker pattern

  1. A master process/thread sets up a pool of workers (processes/threads) and a bag of tasks.
  2. Workers take tasks from the bag, and process them in a concurrent fashion.

Each worker continues processing, until all tasks have been processed or some other condition has been reached. In some implementations no explicit master is present.

– It is suitable for non-deterministic execution time of tasks.

– It is used when tasks should be distributed among workers.

– Since creating and terminating processes/threads is expensive workers should be reused.

– Not applicable when tasks are interdependent.

– Usually the number of tasks exceeds the number of UEs.

– Usually number of workers <= PE.

How tasks are assigned to workers? Continue reading