Introduction to Parallel Programming

2012 Summer School on Concurrency August 22–29, 2012 | St. Petersburg, Russia Introduction to Parallel Programming Section 3. Parallel Methods for M...
Author: Nathan Crawford
0 downloads 0 Views 1MB Size
2012 Summer School on Concurrency August 22–29, 2012 | St. Petersburg, Russia

Introduction to Parallel Programming Section 3.

Parallel Methods for Matrix Multiplication

Victor Gergel, Professor, D.Sc. Lobachevsky State University of Nizhni Novgorod (UNN)

Contents 

Problem Statement  Sequential Algorithm  Algorithm 1 – Block-Striped Decomposition  Algorithm 2 – Fox’s method  Algorithm 3 – Cannon’s method  Summary

St. Petersburg, Russia,2012

Introduction to Parallel Programming: Matrix Multiplication © Gergel V.P.

2 → 50

Problem Statement Matrix multiplication:

C  A B or  c0, 0 , c0,1 , ..., c0,l 1   a0, 0 , a0,1 , ..., a0,n 1   b0, 0 , b0,1 , ..., a0,l 1       ... ... ...     c  a   b , b , ..., b  , c , ..., c , a , ..., a m  1 , 0 m  1 , 1 m  1 , l  1 m  1 , 0 m  1 , 1 m  1 , n  1 n  1 , 0 n  1 , 1 n  1 , l  1     

 The matrix multiplication problem can be reduced to the execution of m·l independent operations of matrix A rows and matrix B columns inner product calculation



n 1

 a

cij  ai , bTj 

ik

 bkj , 0  i  m, 0  j  l

k 0

Data parallelism can be exploited to design parallel computations St. Petersburg, Russia,2012

Introduction to Parallel Programming: Matrix Multiplication © Gergel V.P.

3 → 50

Sequential Algorithm… // Algorithm 8.1 // Sequential algorithm of matrix multiplication double MatrixA[Size][Size]; double MatrixB[Size][Size]; double MatrixC[Size][Size]; int i,j,k; ... for (i=0; i