Learning objectives
After this class, you should be able to:
- Given data for the following operations: (i) reduction, (ii) broadcast, (iii) gather, and (iv) scatter, 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.
- Derive the time complexity for each of the above operations.
- Explain the idea behind
divide and conquor
and pipelining
, which are used to develop efficient parallel algorithms.
- Define the terms (i) speedup, (ii) efficiency, and (iii) work.
- 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.
Reading assignment
- Handout on Parallel algorithms: Slides 1 - 20.
- Handout on Parallel algorithms: Slides 21 - 30.
Exercises and review questions
- Questions on current lecture's material
- Given eight processors with data
1, 3, 2, 4, 5, 3, 1, 8
respectively, show the messages sent at each step of the all-gather operation, and the data present in each processor at the end of each step.
- Give an efficient algorithm for the scatter operation, and derive its time complexity.
- Show a pipelined scheme for performing
n > > P
broadcasts on P
processors, with the time complexity mentioned in the Parallel algorithms handout.
- Questions on next lecture's material
- Given the following sequence of data:
1, 3, 2, 4
, give all the prefixes. You can use a sequential algorithm to compute them.
- Given the following linear recurrence:
xi = i xi-1 + (i+1) xi-2
, compute (sequentially) x4
, if x0 = x1 = 1
.
- Show any
3 x 3
matrix, any vector with three components, and the result of multiplying the matrix by the vector.
Last modified: 20 May 2004