Distributed Numerical Computation - Assignment 1

Due Date: Tuesday November 3


    1. 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.
    2. Comment on the results, identify the most efficient in each case, and draw some conclusions about the LAM implementation of MPI being used here.

  1. 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:
    1. using the MPI_Gather code on p82
    2. using an MPI_Allgather

  2. 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.


  3. 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.


farrell@mcs.kent.edu