CMSC 683/691c, Parallel Programming

Project 1: Matrix Add and Multiply

(c) 1995, Howard E. Motteler
Assigned Thu Sept 26
Due Thu Oct 10
100 pts

The Project

You are to write an mpl program that

Discussion

A detailed 3 x 3 example of the "in place" SIMD matrix multiply algorithm is available, with rotations and active sets marked at each stage. You should not use too much extra storage in performing the multiplies; in particular, do not try and store an entire matrix column on a single PE. An example program reduce.m shows how to use the library routines that return total DPU time.

Examples of routines to read and write ascii matrix files are available. You do not have to use the "mat" array structure used there, which is more general than necessary for this project. Note that the dpuio.m routines are very slow, and you should not include the ascii read and write times in your calculation of total DPU time. (The dpuio.m routines were only intended for testing parts of the production bp code; there is a much faster set of i/o routines in feio.m which run on the "front end" machine.)

You don't have to check for bad input data, invalid command lines, or integer overflow. I will supply data that doesn't overflow 32 bit integer arithmetic.

Test data

Sample test data is provided. This is a tar file, which contains 4x4 arrays A4 and B4 in A4.mat and B4.mat, with A^2 - A*B + B^2 in C4.mat, and 64x64 arrays A64 and B64 in A64.mat and B64.mat, with A^2 - A*B + B^2 in C64.mat.

What to turn in

For this first project, use email to submit a single mpl source file. Make sure that your name and "project 1" are at the top of the file. At the beginning of your comments you should also mention: (1) if your project works correctly, and (2) your DPU time on the 64 x 64 test data. Please don't use MIME encodings.

Grading

See the general information on programming projects. About 60% of your grade is based on how well your code works, with the remainder of the points divided between design and documentation. Projects are due by midnight of the assigned date; there is a 5% bonus for each day a project is turned in early (for up to two days early), and a 5% penalty for each day the project is turned in late.