基于Hadoop的大矩阵乘法处理方法

Download Report

Transcript 基于Hadoop的大矩阵乘法处理方法

基于Hadoop的大矩阵乘法处
理方法
论文作者:孙远帅
报告人:李培
2015/4/12
1
主要内容
2015/4/12
1
研究意义
2
矩阵乘法发展
3
MapReduce编程模型
4
本文工作
2
1
研究意义
2015/4/12
3
2
矩阵乘法发展
1. 从优化单机算法角度很难有提升;
2. 通过改进硬件的性能;
3. 从技术手段来计算大矩阵乘法;
2015/4/12
4
3
MapReduce编程模型
MapReduce编程模型
2015/4/12
5
本文工作
4
a11
a12
a13
a21
a22
a23
a31
a32
a33
a41
a42
a43
左矩阵A
C = AB
c11
c12
c13
c14
b11
b12
b13
b14
c21
c22
c23
c24
b21
b22
b23
b24
c31
c32
c33
c34
b31
b32
b33
b34
c41
c42
c43
c44
右矩阵B
结果矩阵C
介绍矩阵的分布式乘法时,假设:
左矩阵A是m×s
1. 内积法
2. 外积法
右矩阵B是s×n
结果矩阵C是m×n
3. 分块矩阵乘法
2015/4/12
6
本文工作
4
a11
a12
a13
b11
.
b21
= c11 = a11*b11+a12*b21+a13*b31
b31
a11
a12
a13
.
内积法
b12
b22
= c12 = a11*b12+a12*b22+a13*b32
b32
3
….
ai1
ai2
ai3
.
c ij 
ik
b kj
k 1
b1j
b2j
a
= cij = ai1*b1j+ai2*b2j+ai3*b3j
b3j
….
a41
a42
2015/4/12
a43
.
b14
b24
b34
= c44 = a41*b14+a42*b24+a43*b34
7
本文工作
4
内积法数据流程图
T
T
j, b
j
[1, j], b1
[2, j], b1
Shuffle
…
Map
…
T
[1, 1], c11
[1, 2], c12
T
[1, n], [a1 , bn ]
T
[2, 1], [a2
, b1]
T
[2, 2], [a2 , b2 ]
Reduce
T
[m, n], [am, bn ]
[m, j], b1
[1, n], c1n
[2, 1], c21
[2, 2], c22
…
[i, n],ai
…
T
[1, 1], [a1 ,b1]
T
[1, 2], [a1 ,b2]
…
i, ai
… …
[i, 1], ai
[i, 2], aiT
[m, n],cmn
内积法中Reduce任务与数据的对应关系
A
T
1
a
a2
T
…
bn
R_1_1 R_1_2
…
R_1_n
R_2_1 R_2_2
…
R_2_n
R_m_1 R_m_2
…
…
T
b2
并发粒度:m×n×s
中间shuffle数据量:
…
…
am
b1
…
B
…
R_m_n
注:R_i_j表示Reduce任务的编号
2015/4/12
n个A矩阵,m个B矩阵,即2s个C矩阵
8
本文工作
4
a11
a21
a31
× b11 b12 b13 b14 =
a41
a11*b11
a11*b12
a11*b13
a11*b14
a21*b11
a21*b12
a21*b13
a21*b14
a31*b11
a31*b12
a31*b13
a31*b14
a41*b11
a41*b12
a41*b13
a41*b14
外积法
+
a12
a22
a32
× b21 b22 b23 b24 =
a42
a12*b21
a12*b22
a12*b23
a12*b24
a22*b21
a22*b22
a22*b23
a22*b24
a32*b21
a32*b22
a32*b23
a32*b24
a42*b21
a42*b22
a42*b23
a42*b24
+
a13
a23
a33
a43
× b31 b32 b33 b34 =
a13*b31
a13*b32
a13*b33
a13*b34
a23*b31
a23*b32
a23*b33
a23*b34
a33*b31
a33*b32
a33*b33
a33*b34
a43*b31
a43*b32
a43*b33
a43*b34
=
a11*b11+a12*b21+a13*b31 a11*b12+a12*b22+a13*b32 a11*b13+a12*b23+a13*b33 a11*b14+a12*b24+a13*b34
a21*b11+a22*b21+a23*b31 a21*b12+a22*b22+a23*b32 a21*b13+a22*b23+a23*b33 a21*b14+a22*b24+a23*b34
a31*b11+a32*b21+a33*b31 a31*b12+a32*b22+a33*b32 a31*b13+a32*b23+a33*b33 a31*b14+a22*b24+a33*b34
9
a41*b2015/4/12
11+a42*b21+a43*b31 a41*b12+a42*b22+a43*b32 a41*b13+a42*b23+a43*b33 a41*b14+a42*b24+a43*b34
本文工作
4
外积法数据流程图
T
T
T
j, bj
Map
T
Shuffle
…
…
T/
…
T/
T/
T/
Shuffle
T/
ms
m, c
3,[...,c3i ,...,c3 j ,...]
…
i, c
Map
T/
T/
mi
m,[...,c
[as , bsT ]
T
1, c1
2, c2T
1,[...,c1i ,...,c1 j ,...]
T/
T/
2,[...,c2i ,...,c2 j ,...]
T/
ix
j, c jx
s,
[ as , b ]
s,
Job2
Reduce
T
s
T
Reduce
3, c3
…
j, bj
3, [ a3 , b3T ]
3, [ a3 , b3T ]
…
Job1
…
i, ai
i, ai
1, [a1, b1 ]
T
2, [a2 ,b2 ]
1, [a1, b1 ]
T
2, [a2 ,b2 ]
T
T/
mj
,...,c
,...]
m, cm
外积法中Reduce任务与数据的对应关系
A
a1
a2
…
as
T
b1
b2
T
…
bs
T
并发粒度:s
中间数据量:
R_1_1
Job1的shuffle 数据量:一个A矩阵和一个B矩
阵
R_2_2
…
B
R_s_s
2015/4/12
注:R_i_j表示Reduce任务的编号
Job1到Job2的IO数据量:s个C矩阵
Job2的shuffle数据量:远小于s个C矩阵 10
4
本文工作
把左矩阵划分为m1×s1等大小的矩阵,右矩阵划分为s1×n1的等大小矩阵,则有
:
A11
.
.
A =
.
AM1
…
…
A1 S
.
.
.
A MS
B=
B11
.
.
.
BS 1
…
…
B1N
.
.
.
B SN
M = (m - 1)/m1 + 1
S = (s - 1)/s1 + 1
N = (n - 1)/n1 + 1
S
C ij 

Aik B kj
k 1
其中 i  M , j  N
2015/4/12
并发粒度:M×N×S
中间数据量:N个A矩阵和M个B矩阵
11
4
本文工作
实验平台和环境
 所有实验均在一个由7台机器组成的集群中完成。集群
采用Hadoop 1.0版本,由1个NameNode和7个DataNode
构成。每个节点CPU为i5-2300 2.8G,4核8线程,内存
容量为32G,操作系统使用Ubuntu 12.04。
2015/4/12
12
4
本文工作
矩阵规模与运行时间的关系
2015/4/12
13
4
本文工作
矩阵稀疏度与运行时间的关系
2015/4/12
14
4
本文工作
分块策略与运行时间的关系
2015/4/12
分块策略与中间数据量的大小关系
15
4
本文工作
工作节点数量与运行时间的关系
2015/4/12
16
欢迎批评指正
论文作者:孙远帅
电子邮箱:[email protected]
联系电话:18250878229
2015/4/12
17