Lecture 15

Learning objectives

After this class, you should be able to:

  1. Define the terms (i) speedup, (ii) efficiency, and (iii) work.
  2. Given data for the following operations: (i) reduction, (ii) broadcast, (iii) gather, (iv) scatter, and (v) prefix, show the messages sent at each step and the state of each processor at the end of each step, for the algorithms discussed in class for these operation.
  3. Derive the time complexity for each of the above operations in the task/channel communication model.
  4. Explain the idea behind divide and conquor and pipelining, which are used to develop efficient parallel algorithms.
  5. Show how a linear recurrence can be formulated as a parallel prefix problem, and derive the time complexity of the parallel algorithm based on this formulation.
  6. Given the time on a single processor, the number of processors, and the time taken by an algorithm on those processors, compute the speedup, efficiency, and work.
  7. Given the sequential or parallelizable fraction of a code, give the maximum possible speedup

Reading assignment

  1. Foster's book, especially section 1.3 and chapter 3.

Exercises and review questions


Last modified: 3 Mar 2010