CS 112 Project 10: Parallel Matrix Processing with OpenMP

The Problem

Using OpenMP, we have speeded up the Matrix addition and transpose operations. This week's project is quite open-ended: you are to see what else you can do to speed up the Matrix class as a whole, using OpenMP directives. Keeping in mind the 90-10 rule, and try to identify the time-consuming areas within the Matrix class.

When you find an operation that seems like a good candidate for speedup, write a method for the MatrixTimer class to time it and get a baseline value for how long it takes. Then, when you make changes to your Matrix class, you will be able to tell whether or not your changes are effective in speeding up that operation.

Be sure to re-run your tests each time you make a change, to make certain your change has not "broken" any of the other operations. While you are developing, you may create your own smaller input file(s) to speed up the development, but the final numbers for your spreadsheet should be generated using the bigger input file.

You may find this page of OpenMP resources to be of use.

Document everything you try (successful or failure) in a spreadsheet, and create charts showing your results.

If you find that some operations take excessively long for 4096x4096 matrices, you may use the provided 1024x1024 matrix to time those operations. You may also want to construct your own smaller matrices (e.g., 4x4, 5x5) for testing purposes.

Preparing to Submit

Create a script file in which you use ls to list all your project's files, use cat to display the contents of each file, and build+run your project to demonstrate that it works correctly. Make certain that your script file and spreadsheet are located in your project folder.

Our grader will grade your submission based on the categories given in this grade sheet, so you should make certain all of those categories are covered.

Submit


CS > 112 > Projects > 10 > Matrix Operations


This page maintained by Joel Adams.