In this example, a computer is playing chess. In choosing its next move, it will
analyze responses to all possible moves for one or more rounds into the future.
- Non-homogeneous members
Different moves require different amounts of computation. One may allow checkmate
on the next response, so can be eliminated immediately. Others may require projection
further into the future.
- No interaction between members
When analyzing one move, no information is needed about other moves.
- Self-scheduling (or "pool of tasks") using Manager/Worker
The figure shows the Manager process on the left, ready to distribute data on possible
moves to the Workers. The four Workers on the right are all doing the same analysis
on different data (different moves). When a Worker is finished analyzing a move,
the Manager assigns it another move to analyze.
- Dynamic load balancing
The specific work assigned to processes is determined at run time.
- The communication pattern is one to all
- This program will not scale if there is one process managing the pool of tasks.
The Manager will become a bottleneck as the number of Workers increases.