Module 3: Fundamentals of Parallel Computers: ILP vs TLP
  Lecture 6: Preliminaries of Parallel Programming
 


Dynamic Assignment

  • Dynamic assignment comes with its own overhead
    • Now you need to maintain a shared count of the number of available tasks
    • The update of this variable must be protected by a lock
    • Need to be careful so that this lock contention does not outweigh the benefits of dynamic decomposition
  • More complicated applications where a task may not just operate on an index range, but could manipulate a subtree or a complex data structure
    • Normally a dynamic task queue is maintained where each task is probably a pointer to the data
    • The task queue gets populated as new tasks are discovered

Decomposition Types

  • Decomposition by data
    • The most commonly found decomposition technique
    • The data set is partitioned into several subsets and each subset is assigned to a process
    • The type of computation may or may not be identical on each subset
    • Very easy to program and manage
  • Computational decomposition
    • Not so popular: Tricky to program and manage
    • All processes operate on the same data, but probably carry out different kinds of computation
    • More common in systolic arrays, pipelined graphics processor units (GPUs) etc.