Distributed Numerical Computation - Assignment 1
Due Date: Tuesday November 3
-
- Test the times to broadcast a vector of 1000 floating point entries
over 2,3,4,5,6, nodes/machines using the default network (ethernet),
on 2,3,4 using the ATM network (machine.atm) and
on 2,3,4 using the Fibre Channel network (machine.fc)
and the different algorithms
- linear send/recv
- tree structured algorithm
- MPI_Bcast
Do not use the c2c option.
- Comment on the results, identify the most efficient in each case,
and draw some conclusions about the LAM implementation of MPI being
used here.
-
Implement and check the time to do a matrix-vector product of a 1000x1000
matrix with a 1000x1 vector of floats on 2,3,4,5,6 machines:
- using the MPI_Gather code on p82
- using an MPI_Allgather
- Implement a matrix-vector product as efficient as possible where
the matrix and vector are derived and stored as indicated in class from
a finite difference approximation on a square. Note that the matrix is a sparse
structured matrix and thus has bands of non-zero elements.
At all the boundaries of the cube you should assume that the vector is
fixed at 1.
-
Write a dense matrix function to produce the transpose of an nxn matrix.
The transpose AT of a matrix A is obtained by making each column
of A a row of AT. Assume that A is stored on node 0. Create a
derived data type for columns of A. Send each column of A to node 1, but
have node 1 store it in the appropriate row of AT. At the end of the
function, A should be on node 0 and AT on node 1.