Assignment 3: Due April 2, Monday, 4 pm.

We continue the implementations of matrix multiplication. This time we compute the multiplication on a network of workstations (NOW) on the Internet (distributed memory) using MPI (Message Passing Interface). One computer (the host) should have matrices A, B, and C at the start and have the product A*B in C at the end of the computation. The main purpose of this assignment is to let you get familiar with message passing programming. Performance is a secondary issue in this assignment. You may use any layout discussed in class. You may start with a simple layout and then improve it step by step.

You can find information about MPI in the Resource section at the bottom of the course web page.

Run your program using various numbers of computers. Time your program and compare with the sequential program you developed in Assignment 1. To make the comparision fair, use the matrix multiplication subroutine in your Assignment 1 in your parallel program.

Hand in a report on you experiments and include the source code.