IMPLEMENTING STRASSEN’S ALGORITHM FOR MATRIX-MATRIX MULTIPLICATION WITH OPENMP 3.0 TASKS (INTEL)

he included source code implements Strassen’s Algorithm for matrix-matrix multiplication in parallel using OpenMP 3.0 tasks. Microsoft Visual Studio solution and project files are included to build the application for testing. The PowerPoint lecture foils describe 1) the standard triple-nested algorithm and how different insertion points of OpenMP pragmas will affect the parallelism to be expected, 2) a recursive algorithm with the same number of multiplication operations, and 3) the Strassen’s Algorithm and how to use OpenMP 3.0 task constructs to parallelize the recursive calls. The write-up follows the outline in the PowerPoint presentation. Potential modifications to the included code that may have an effect on parallel performance are postualted in both the PowerPoint and written description of the code development for Strassen’s Algorithm. These modifications could be assigned as lab exercises by students to determine if there is any significant performance benefit to the potential optimizations.

Recommended Audience
Programmers experienced in C/C++ and OpenMP 3.0 task constructs; students of linear algebra with C/C++ and parallel programming skill

There are downloads available under the Creative Commons License license. Download Now
For more complete information about compiler optimizations, see our Optimization Notice.