Task mapping assigns computational tasks to processors. Like giving different road-trip responsibilities to different people, it aims to ensure every resource has useful work while keeping the overall job moving efficiently. section 13.2
A good mapping balances two goals that can compete:
- Place tasks that can run in parallel on different processors to increase concurrency. section 13.7
- Keep tasks that interact often on the same processor to improve locality and reduce communication costs. section 13.7
- Assign tasks statically or determine their placement at runtime with load-balancing algorithms. section 13.2
Matrix multiplication
A matrix-multiplication example leaves task mapping and scheduling to the operating system. For large tasks on distributed systems or specialized hardware, choosing an effective mapping matters more. section 13.7
