Homework 3: Parallel LU
The purpose of this assignment is to give you exercise on implementing parallel LU factorization.
MIT students are welcome to use our Beowulf cluster or any other cluster
at their disposal.
Take a look at Beowulf instructions for an introduction on using our class Beowulf.
Use of the PBS system is mandatory .
Outline
You are reminded to start on the homework early. Late homework will not be accepted, no matter what your reason is.
Instructions for submission:
For our sanity's sake, please follow the submission procedure:
- Create a directory called 'your user name'-hw3
For example, cly-hw3
- Create two subdirectories, prob1, prob2
- Put your files (source code, txts) in the appropriate directory
- tar your directory by: tar cf 'your user name'-hw3.tar 'your user name'-hw3
For example, tar cf cly-hw3.tar cly-hw3
- gzip it:
gzip cly-hw3.tar
- Put this file in the root of your home directory,
cp cly-hw3.tar.gz ~
- The file will be collected at 2/25 11:59pm EST. This corresponds to 2/26 4:59am GMT, which the server uses.
Part I: Parallel LU
Part I: Parallel LU
Implement the parallel LU factorization on a matrix of size 2000x2000 (randomly generated). You either MATLAB*P mm mode or C/FORTRAN with MPI for this problem.
Your code should work for row distribution, column distribution, and 2D block cyclic distribution. You can write 3 separate routines if you so prefer.
How do you make it work for 2D block cyclic you may ask? Read about the 2D block cyclic distribution on this webpage, and note that 2D block cyclic is nothing more than a row and column shuffle (permutation). So if B is the matrix A arranged in the form of 2D block cyclic, then B = P*A*Q', where P Q are permutation matrices.
2D block cyclic distribution could be hard. Try to finish row and col first.
Hints/Clarifications:
Ron Choy
Last modified: Sun Feb 9 22:32:13 GMT 2003