Considerations of parallel program design
Partitioning
Communication
Synchronisation
Load Balancing
Parallelisation: Task vs Data
What does each separate?
Task separates the processes
Data separates the data into batches instead
PCAM: 1. Partitioning
Decompose problem into small parallel subtasks
PCAM: 2. Communication
Determine required comms
PCAM: 3. Agglomeration
Combine subtasks into larger tasks
PCAM: 4. Mapping
Assign agglomerated tasks to processes/threads