Parallel algorithm implementing Strassen’s Algorithm for matrix-matrix multiplication (Bradley Kuszmaul)

The included source code implements Strassen’s Algorithm for matrix-matrix multiplication in parallel, as described in the included problem description text file. The included write-up gives an overview of Cilk++ and some of the tools available for Cilk programming. Six different methods for computing matrix-matrix multiplication are discussed. The pros and cons of the parallelization (using Cilk++) of each method and the performance of each on different sized matrices are provided within the write-up. Source files for the alternate algorithms are provided and these alternatives can be built for comparison against each other. The code was intended for Linux OS and includes a makefile to build the applications.

Recommended Audience:
Programmers experienced in C/C++ (some exposure to Cilk++ and parallel programming is helpful); students of linear algebra with C/C++ and parallel programming skill.

DISCLAIMER: This code is provided by the author as a submitted contest entry, and is intended for educational use only. The code is not guaranteed to solve all instances of the input data sets and may require modifications to work in your own specific environment.

There are downloads available under the Creative Commons License license. Download Now

Include in RSS: 

For more complete information about compiler optimizations, see our Optimization Notice.