Parallel Computing: Lecture 16
Learning objectives
After this class, you should be able to:
- Write MPI code using the following features: (i)
MPI_Probe
, (ii)MPI_Irecv
, (iii)MPI_Isend
, (iv)MPI_Test
, and (v)MPI_Wait
.- Given a type of data decomposition (such as row-wise block striped, column-wise block striped, etc), give an algorithm to perform matrix multiplication using that data decomposition, analyze its time complexity, and give its iso-efficiency and scalability functions.
- Given matrices
A
andB
, and the number of processorsP
, show the steps executed by Canon's algorithm to computeC = A*B
.
Reading assignment
- Chapter 11 (ignore the cache issues for now), also read the MPI standard for the MPI functions mentioned above (you may also refer to Chapter 9 for some of them).
- None.
Exercises and review questions
- Questions on current lecture's material
- Give a parallel algorithm for matrix multiplication using a column-wise block-striped decomposition.
- Exercise 11.4 (b).
- (Programming) Write an MPI program that will run on two processors. Each process will exchange an array of
1000
integers with its neighbor usingIsend/Irecv/Iwait
. Before callingIwait
, please have each processsleep
for2
seconds. In a real program, you would not have the processes sleep. Instead, you would have them do some useful computation.- Questions on next lecture's material
- None.