Matrix Case Study
Matrix Case Study
MapReduce
Matrix Multiplication
0 A, 0, 1 1 A, 0, 2 2 A, 0, 0
0 A, 1, 3 1 A, 1, 0 2 A, 1, 5
0 A, 2, 0 1 A, 2, 7 2 A, 2, 0
0 A, 3, 4 1 A, 3, 0 2 A, 3, 0
0 A, 4, 1 1 A, 4, 8 2 A, 4, 2
Key Value Key Value Key Value Key Value Key Value
0, 0 A, 0, 1 0, 0 B, 0, 1 0, 0 1 2, 0 0 4, 0 13
0, 0 A, 1, 2 0, 0 B, 1, 0 0, 1 12 2, 1 28 4, 1 42
0, 0 A, 2, 0 0, 0 B, 2, 6 0, 2 5 2, 2 0 4, 2 23
0, 1 A, 0, 1 0, 1 B, 0, 4 0, 3 2 2, 3 7 4, 3 10
0, 1 A, 1, 2 0, 1 B, 1, 4 1, 0 33 3, 0 4
0, 1 A, 2, 0 0, 1 B, 2, 3 1, 1 27 3, 1 16
0, 2 A, 0, 1 0, 2 B, 0, 5 1, 2 60 3, 2 20
0, 2 A, 1, 2 0, 2 B, 1, 0 1, 3 5 3, 3 0
0, 2 A, 2, 0 0, 2 B, 2, 9
0, 3 A, 0, 1 0, 3 B, 0, 0
0, 3 A, 1, 2 0, 3 B, 1, 1
0, 3 A, 2, 0 0, 3 B, 2, 1
Complexity Theory for MapReduce
• If a reducer covers outputs of !!" and !#$ ,it can also covers !!$ and !#"
Matrix Multiplication
• Map
– For each element of X, Y generate g (k,v) pairs
– Key is group paired with all groups
– Value is (i,j, mij) or (i, j, nij)
• Reduce
– Reducer corresponds to key (i,j)
– All the elements in the ith band of A and jth band of B are aggregated.
Example
One Pass Algorithm
Map Output
Key Value Key Value Key Value Key Value Key Value Key Value
A,D 1, 1, 1 A,E 1, 1, 1 B,D 3, 1, 3 B,E 3, 1, 3 C,D 5, 1, 4 C,E 5, 1, 4
A,D 1, 2, 2 A,E 1, 2, 2 B,D 3, 2, 2 B,E 3, 2, 2 C,D 5, 2, 1 C,E 5, 2, 1
A,D 1, 3, 3 A,E 1, 3, 3 B,D 3, 3, 1 B,E 3, 3, 1 C,D 5, 3, 2 C,E 5, 3, 2
A,D 1, 4, 4 A,E 1, 4, 4 B,D 3, 4, 8 B,E 3, 4, 8 C,D 5, 4, 7 C,E 5, 4, 7
A,D 1, 5, 5 A,E 1, 5, 5 B,D 3, 5, 1 B,E 3, 5, 1 C,D 5, 5, 5 C,E 5, 5, 5
A,D 1, 6, 6 A,E 1, 6, 6 B,D 3, 6, 6 B,E 3, 6, 6 C,D 5, 6, 6 C,E 5, 6, 6
A,D 2, 1, 7 A,E 2, 1, 7 B,D 4, 1, 7 B,E 4, 1, 7 C,D 6, 1, 7 C,E 6, 1, 7
A,D 2, 2, 8 A,E 2, 2, 8 B,D 4, 2, 8 B,E 4, 2, 8 C,D 6, 2, 8 C,E 6, 2, 8
A,D 2, 3, 9 A,E 2, 3, 9 B,D 4, 3, 9 B,E 4, 3, 9 C,D 6, 3, 9 C,E 6, 3, 9
A,D 2, 4, 10 A,E 2, 4, 10 B,D 4, 4, 10 B,E 4, 4, 10 C,D 6, 4, 10 C,E 6, 4, 10
A,D 2, 5, 11 A,E 2, 5, 11 B,D 4, 5, 11 B,E 4, 5, 11 C,D 6, 5, 11 C,E 6, 5, 11
A,D 2, 6, 12 A,E 2, 6, 12 B,D 4, 6, 12 B,E 4, 6, 12 C,D 6, 6, 12 C,E 6, 6, 12
Map Output
Key Value Key Value Key Value Key Value Key Value Key Value
A,D 1, 1, 1 B,D 1, 1, 1 C,D 1, 1, 1 A,E 1, 3, 5 B,E 1, 3, 5 C,E 1, 3, 5
A,D 2, 1, 2 B,D 2, 1, 2 C,D 2, 1, 2 A,E 2, 3, 6 B,E 2, 3, 6 C,E 2, 3, 6
A,D 3, 1, 3 B,D 3, 1, 3 C,D 3, 1, 3 A,E 3, 3, 11 B,E 3, 3, 11 C,E 3, 3, 11
A,D 4, 1, 4 B,D 4, 1, 4 C,D 4, 1, 4 A,E 4, 3, 6 B,E 4, 3, 6 C,E 4, 3, 6
A,D 5, 1, 5 B,D 5, 1, 5 C,D 5, 1, 5 A,E 5, 3, 3 B,E 5, 3, 3 C,E 5, 3, 3
A,D 6, 1, 6 B,D 6, 1, 6 C,D 6, 1, 6 A,E 6, 3, 0 B,E 6, 3, 0 C,E 6, 3, 0
A,D 1, 2, 3 B,D 1, 2, 3 C,D 1, 2, 3 A,E 1, 4, 7 B,E 1, 4, 7 C,E 1, 4, 7
A,D 2, 2, 4 B,D 2, 2, 4 C,D 2, 2, 4 A,E 2, 4, 8 B,E 2, 4, 8 C,E 2, 4, 8
A,D 3, 2, 7 B,D 3, 2, 7 C,D 3, 2, 7 A,E 3, 4, 15 B,E 3, 4, 15 C,E 3, 4, 15
A,D 4, 2, 5 B,D 4, 2, 5 C,D 4, 2, 5 A,E 4, 4, 7 B,E 4, 4, 7 C,E 4, 4, 7
A,D 5, 2, 2 B,D 5, 2, 2 C,D 5, 2, 2 A,E 5, 4, 4 B,E 5, 4, 4 C,E 5, 4, 4
A,D 6, 2, 0 B,D 6, 2, 0 C,D 6, 2, 0 A,E 6, 4, 2 B,E 6, 4, 2 C,E 6, 4, 2
Reduce Output – One reducer
Calculation
Key Value Key Value
A,D 1, 1, 1 A,D 1, 1, 1 Key Value
A,D 1, 2, 2 A,D 2, 1, 2 1, 1 91
A,D 1, 3, 3 A,D 3, 1, 3 1, 2 62
A,D 1, 4, 4 A,D 4, 1, 4 2, 1 217
A,D 1, 5, 5 A,D 5, 1, 5 2, 2 188
A,D 1, 6, 6 A,D 6, 1, 6
1·1+2·2+3·3+4·4+5·5+6·
A,D 2, 1, 7 A,D 1, 2, 3 6 = 1 + 4 + 9 + 16 + 25 + 36 = 91
A,D 2, 2, 8 A,D 2, 2, 4
A,D 2, 3, 9 A,D 3, 2, 7
A,D 2, 4, 10 A,D 4, 2, 5
A,D 2, 5, 11 A,D 5, 2, 2
A,D 2, 6, 12 A,D 6, 2, 0
All Reducers Output
Key Value Key Value Key Value
1, 1 91 3, 1 83 5, 1 101
1, 2 62 3, 2 66 5, 2 75
1, 3 89 3, 3 89 5, 3 105
1, 4 128 3, 4 124 5, 4 147
2, 1 217 4, 1 217 6, 1 217
2, 2 188 4, 2 188 6, 2 188
2, 3 275 4, 3 275 6, 3 275
2, 4 386 4, 4 386 6, 4 386
Replication Rate and Reducer Size
# %
– Each reducer gets ! $!
"!# ! $"
elements
from A and B matrices respectively
$&'$(
– Replication rate = (
= (5/2 for our case)
#" #%
– Reducer size = +
$! $"
One Pass Algorithm – Square Matrices
A’s Map Output – (Value is (i,j,mij) )
K V K V K V K V K V K V
A,D 1, 1, 1 A,E 1, 1, 1 A,F 1, 1, 1 B,D 3, 1, 3 B,E 3, 1, 3 B,F 3, 1, 3
A,D 1, 2, 2 A,E 1, 2, 2 A,F 1, 2, 2 B,D 3, 2, 2 B,E 3, 2, 2 B,F 3, 2, 2
A,D 1, 3, 3 A,E 1, 3, 3 A,F 1, 3, 3 B,D 3, 3, 1 B,E 3, 3, 1 B,F 3, 3, 1
A,D 1, 4, 4 A,E 1, 4, 4 A,F 1, 4, 4 B,D 3, 4, 8 B,E 3, 4, 8 B,F 3, 4, 8
A,D 1, 5, 5 A,E 1, 5, 5 A,F 1, 5, 5 B,D 3, 5, 1 B,E 3, 5, 1 B,F 3, 5, 1
A,D 1, 6, 6 A,E 1, 6, 6 A,F 1, 6, 6 B,D 3, 6, 6 B,E 3, 6, 6 B,F 3, 6, 6
A,D 2, 1, 7 A,E 2, 1, 7 A,F 2, 1, 7 B,D 4, 1, 7 B,E 4, 1, 7 B,F 4, 1, 7
A,D 2, 2, 8 A,E 2, 2, 8 A,F 2, 2, 8 B,D 4, 2, 8 B,E 4, 2, 8 B,F 4, 2, 8
A,D 2, 3, 9 A,E 2, 3, 9 A,F 2, 3, 9 B,D 4, 3, 9 B,E 4, 3, 9 B,F 4, 3, 9
A,D 2, 4, 10 A,E 2, 4, 10 A,F 2, 4, 10 B,D 4, 4, 10 B,E 4, 4, 10 B,F 4, 4, 10
A,D 2, 5, 11 A,E 2, 5, 11 A,F 2, 5, 11 B,D 4, 5, 11 B,E 4, 5, 11 B,F 4, 5, 11
A,D 2, 6, 12 A,E 2, 6, 12 A,F 2, 6, 12 B,D 4, 6, 12 B,E 4, 6, 12 B,F 4, 6, 12
A’s Map Output – (Value is (i,j,mij) )
K V K V K V
C,D 5, 1, 4 C,E 5, 1, 4 C,F 5, 1, 4
C,D 5, 2, 1 C,E 5, 2, 1 C,F 5, 2, 1
C,D 5, 3, 2 C,E 5, 3, 2 C,F 5, 3, 2
C,D 5, 4, 7 C,E 5, 4, 7 C,F 5, 4, 7
C,D 5, 5, 5 C,E 5, 5, 5 C,F 5, 5, 5
C,D 5, 6, 6 C,E 5, 6, 6 C,F 5, 6, 6
C,D 6, 1, 7 C,E 6, 1, 7 C,F 6, 1, 7
C,D 6, 2, 8 C,E 6, 2, 8 C,F 6, 2, 8
C,D 6, 3, 9 C,E 6, 3, 9 C,F 6, 3, 9
C,D 6, 4, 10 C,E 6, 4, 10 C,F 6, 4, 10
C,D 6, 5, 11 C,E 6, 5, 11 C,F 6, 5, 11
C,D 6, 6, 12 C,E 6, 6, 12 C,F 6, 6, 12
B’s Map Output – (Value is (i,j,mij) )
K V K V K V K V K V K V
A,D 1, 1, 1 A,E 1, 1, 1 A,F 1, 1, 1 B,D 1, 3, 3 B,E 1, 3, 3 B,F 1, 3, 3
A,D 2, 1, 7 A,E 2, 1, 7 A,F 2, 1, 7 B,D 2, 3, 9 B,E 2, 3, 9 B,F 2, 3, 9
A,D 3, 1, 3 A,E 3, 1, 3 A,F 3, 1, 3 B,D 3, 3, 1 B,E 3, 3, 1 B,F 3, 3, 1
A,D 4, 1, 7 A,E 4, 1, 7 A,F 4, 1, 7 B,D 4, 3, 9 B,E 4, 3, 9 B,F 4, 3, 9
A,D 5, 1, 4 A,E 5, 1, 4 A,F 5, 1, 4 B,D 5, 3, 2 B,E 5, 3, 2 B,F 5, 3, 2
A,D 6, 1, 7 A,E 6, 1, 7 A,F 6, 1, 7 B,D 6, 3, 9 B,E 6, 3, 9 B,F 6, 3, 9
A,D 1, 2, 2 A,E 1, 2, 2 A,F 1, 2, 2 B,D 1, 4, 4 B,E 1, 4, 4 B,F 1, 4, 4
A,D 2, 2, 8 A,E 2, 2, 8 A,F 2, 2, 8 B,D 2, 4, 10 B,E 2, 4, 10 B,F 2, 4, 10
A,D 3, 2, 2 A,E 3, 2, 2 A,F 3, 2, 2 B,D 3, 4, 8 B,E 3, 4, 8 B,F 3, 4, 8
A,D 4, 2, 8 A,E 4, 2, 8 A,F 4, 2, 8 B,D 4, 4, 10 B,E 4, 4, 10 B,F 4, 4, 10
A,D 5, 2, 1 A,E 5, 2, 1 A,F 5, 2, 1 B,D 5, 4, 7 B,E 5, 4, 7 B,F 5, 4, 7
A,D 6, 2, 8 A,E 6, 2, 8 A,F 6, 2, 8 B,D 6, 4, 10 B,E 6, 4, 10 B,F 6, 4, 10
B’s Map Output – (Value is (i,j,mij) )
K V K V K V
C,D 1, 5, 5 C,E 1, 5, 5 C,F 1, 5, 5
C,D 2, 5, 11 C,E 2, 5, 11 C,F 2, 5, 11
C,D 3, 5, 1 C,E 3, 5, 1 C,F 3, 5, 1
C,D 4, 5, 11 C,E 4, 5, 11 C,F 4, 5, 11
C,D 5, 5, 5 C,E 5, 5, 5 C,F 5, 5, 5
C,D 6, 5, 11 C,E 6, 5, 11 C,F 6, 5, 11
C,D 1, 6, 6 C,E 1, 6, 6 C,F 1, 6, 6
C,D 2, 6, 12 C,E 2, 6, 12 C,F 2, 6, 12
C,D 3, 6, 6 C,E 3, 6, 6 C,F 3, 6, 6
C,D 4, 6, 12 C,E 4, 6, 12 C,F 4, 6, 12
C,D 5, 6, 6 C,E 5, 6, 6 C,F 5, 6, 6
C,D 6, 6, 12 C,E 6, 6, 12 C,F 6, 6, 12
Reducer sample output calculation
K V K V
B,D 3, 6, 6 B,D 6, 3, 9
B,D 4, 1, 7 B,D 1, 4, 4
B,D 4, 2, 8 B,D 2, 4, 10 3 · 4 + 2 · 10 + 1 · 8 + 8 · 10 + 1 · 7 + 6 ·
10 = 12 + 20 + 8 + 80 + 7 + 60 = 187
B,D 4, 3, 9 B,D 3, 4, 8
B,D 4, 4, 10 B,D 4, 4, 10
B,D 4, 5, 11 B,D 5, 4, 7
B,D 4, 6, 12 B,D 6, 4, 10
Reducer all output
Key Value Key Value Key Value
1, 1 114 3, 1 122 5, 1 128
1, 2 109 3, 2 137 5, 2 129
1, 3 124 3, 3 156 5, 3 150
1, 4 183 3, 4 187 5, 4 207
1, 5 165 3, 5 197 5, 5 201
1, 6 198 3, 6 222 5, 6 234
2, 1 288 4, 1 288 6, 1 288
2, 2 283 4, 2 283 6, 2 283
2, 3 322 4, 3 322 6, 3 322
2, 4 477 4, 4 477 6, 4 477
2, 5 429 4, 5 429 6, 5 429
2, 6 522 4, 6 522 6, 6 522
Replication Rate and Reducer Size
!
– Each reducer gets 2n "
elements from 2 matrices
"#"
– Replication rate ! = $ =#
!
– Reducer size $ = 2& " = 2&$/#
Tradeoff!
(# " The bigger the reducers,
–%= the less communication.
)
k = n/g
k
Coverage of one reducer
• Each reducer gets 2nk inputs
• Thus, reducer size q = 2nk
• k = q/2n
! "!
• No. of outputs covered by this is ! =
#$!
!"
• Thus one reducer covers outputs --------- (1)
Replication • Total outputs = #$
"# "
----------------- (2)