Project #1: High Performance Dense Matrix Multiplication
Objectives
To understand and apply:
- template meta-programming techniques
- cache oblivious algorithms
- cache aware techniques
- analysis techniques for HPC
- empirical analysis methods
Methods
Compare the following algorithms:
- The non-optimal naive matrix-matrix multiply
- A blocked cache aware matrix-matrix multiply as described in the Cache Oblivious Paper
- A recursive cache oblivious algorithm as described in the Cache Oblivious Paper
- The recursive cache oblivious algorithm with (optimized) template meta-programmed base cases. (You create these yourself).
- The MTL library
Measure the performance of these algorithms on any candidate
architecture. Describe your measurement methodology: How many
measurements did you take? What was the variation in the
measurements? What architecture did you use? What properties did
this architecture have and does it match your model? Use statistical
techniques if necessary.
In your analysis, provide the asymptotic analysis of the
algorithms work and cache complexity. Compare these models to your
analysis. Explain the behavior you see, to the extent that it is
applicable, using the models developed in the analysis.
You may work together with regard to installing MTL, All other work must be independent!
What do you turn in?
- A research report documenting your work. Include references
where necessary. This report should document: analysis of algorithms,
software techniques used, experimental methods and results, comparison
of analysis to experimental results. A hardcopy of this report will
be turned in during class time.
- The software you created. Include all source files and
makefiles and an instruction file on how to compile and run. Do not
include binaries or .o files! Use tar to create a single file and send
this file as an attachment to luke@cs.msstate.edu. The
project source code is due by 2pm on the due date.
Due Date:
The project is due October 9th at 2:00pm.
Examples:
Example of template meta-programming for bitonic sort including an example
Makefile, and measurement method.
template_example.tar or go to template_example
luke@cs.msstate.edu
Last modified: Mon Sep 16 11:23:48 CDT 2002