|
Module 4: Parallel Programming: Shared Memory and Message Passing |
|
Lecture 8: Optimizing Shared Memory Performance |
|
Performance Issues
Agenda
- Partitioning for performance
- Data access and communication
- Summary
- Goal is to understand simple trade-offs involved in writing a parallel program keeping an eye on parallel performance
- Getting good performance out of a multiprocessor is difficult
- Programmers need to be careful
- A little carelessness may lead to extremely poor performance
Partitioning For Perf .
- Partitioning plays an important role in the parallel performance
- This is where you essentially determine the tasks
- A good partitioning should practise
- Load balance
- Minimal communication
- Low overhead to determine and manage task assignment (sometimes called extra work)
- A well-balanced parallel program automatically has low barrier or point-to-point synchronization time
- Ideally I want all the threads to arrive at a barrier at the same time
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|