Assignment 2: Due March 5, Monday, 4 pm.

In this assignment, we implement matrix multiplication using multithreads in Solaris environment.

The idea is to use multiple threads running on multiple processors in shared address space. Each thread computes part of the product matrix C = A*B. You may use any data layout discussed in the class. Try to exploit locality for each thread.

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

Run your program using various numbers of threads on one of our multiprocessor servers. 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 thread program. If you wrote your own code in Assignment 1, use library functions such as dgemm for matrix multiplication.

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