Module 4: Parallel Programming: Shared Memory and Message Passing
  Lecture 8: Optimizing Shared Memory Performance
 


Partitioning and Communication

  • Need to reduce inherent communication
    • This is the part of communication determined by assignment of tasks
    • There may be other communication traffic also (more later)
  • Goal is to assign tasks such that accessed data are mostly local to a process
    • Ideally I do not want any communication
    • But in life sometimes you need to talk to people to get some work done!

Domain Decomposition

  • Normally applications show a local bias on data usage
    • Communication is short-range e.g. nearest neighbor
    • Even if it is long-range it falls off with distance
    • View the dataset of an application as the domain of the problem e.g., the 2-D grid in equation solver
    • If you consider a point in this domain, in most of the applications it turns out that this point depends on points that are close by
    • Partitioning can exploit this property by assigning contiguous pieces of data to each process
    • Exact shape of decomposed domain depends on the application and load balancing requirements