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
AandB, 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
1000integers with its neighbor usingIsend/Irecv/Iwait. Before callingIwait, please have each processsleepfor2seconds. 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.