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