CN104462023A - 基于mapreduce框架的超大规模稀疏矩阵乘法运算的方法 - Google Patents

基于mapreduce框架的超大规模稀疏矩阵乘法运算的方法 Download PDF

Info

Publication number
CN104462023A
CN104462023A CN201410845357.XA CN201410845357A CN104462023A CN 104462023 A CN104462023 A CN 104462023A CN 201410845357 A CN201410845357 A CN 201410845357A CN 104462023 A CN104462023 A CN 104462023A
Authority
CN
China
Prior art keywords
value
key
matrix
mapper2
mapper1
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410845357.XA
Other languages
English (en)
Other versions
CN104462023B (zh
Inventor
蒋伟
姚键
潘柏宇
卢述奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Beijing Software Services Co Ltd
Original Assignee
1Verge Internet Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 1Verge Internet Technology Beijing Co Ltd filed Critical 1Verge Internet Technology Beijing Co Ltd
Priority to CN201410845357.XA priority Critical patent/CN104462023B/zh
Publication of CN104462023A publication Critical patent/CN104462023A/zh
Application granted granted Critical
Publication of CN104462023B publication Critical patent/CN104462023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

一种基于mapreduce框架下的大规模稀疏矩阵乘法运算的方法,所述算法由2个mapreduce的job完成,对矩阵A和矩阵B的元素进行正确的分组,使得矩阵A的第i列的元素与矩阵B的第k行的元素进入到同一个reduce的group中,并对该group中每一个来自A的元素和来自B的元素做一次乘积。本发明只需要2个mapreduce操作就可以完成超大规模系数矩阵的乘法,减少算法的运行步骤和时间,本发明降低了对机器内存的要求,只需要机器能用hashmap存储矩阵A的每一行即可进行。

Description

基于mapreduce框架的超大规模稀疏矩阵乘法运算的方法
技术领域
 本申请涉及一种矩阵乘法 ,具体的,涉及一种基于mapreduce框架的超大规模稀疏矩阵乘法运算的方法。
背景技术
矩阵乘法是线性代数中常见的问题之一,许多数值计算问题都包含着矩阵乘法的计算。因此,提高矩阵乘法算法运行速度问题,多年来一直引起算法研究者们的高度重视。在现有技术CN201310033884.6中,提出了一种将大矩阵乘法问题转换为适合mapreduce的操作,解决大规模矩阵乘法运算因为维度过大,在单机环境下因资源限制导致执行性能低下甚至无法执行的问题。但该操作需要4个mapreduce的job才能完成,仍然占据较大的内存和计算量,因此,如何能够减少计算量,更为快速有效的完成矩阵乘法的操作运算,便成为现有技术亟待解决的技术问题。
发明内容
本发明的目的在于提出一种基于mapreduce框架的超大规模稀疏矩阵乘法运算的方法,使得能够只需要2个mapreduce操作就可以完成超大规模系数矩阵的乘法,减少算法的运行步骤和时间。
为达此目的,本发明采用以下技术方案:
一种基于mapreduce框架下的大规模稀疏矩阵乘法运算的方法,即求矩阵C,使得C=A*B,其中A的存储格式为(i,k,Aik),B的存储格式为(k,j,Bkj),C的存储格式为(i,j,Cij),其中1≤i≤m, 1≤k≤n, 1≤j≤l,所述算法由2个mapreduce的job完成,包括如下步骤:
步骤1:第一个job,该job需要两个mapper和1个reduce完成:
(i) 生成mapper1:对矩阵A的每一个元素(i,k,Aik),输出一个key-value对, mapper1的key和value分别为key-value对的形式,其中,key为(k, A’),value为(i, Aik), A’为常数,表示属于矩阵A;
(ii) 生成mapper2:对矩阵B的每一个元素(k,j,Bkj),输出一个key-value对, mapper2的key和value分别为key-value对的形式,其中,key为(k,B”),value为(j, Bkj) , B”为常数,表示属于矩阵B;
(iii) partitioner : 将mapper1和mapper2输出的key-value对按照key中的key-value对中的key 的hash进行partition;
(iv) groupingComprator: 将mapper1和mapper2输出的key-value对按照key中的key-value对中的key进行分组;
(v) reduce: 对reduce的每一个分组,声明两个hashmap,记为hashmapA和hashmapB,对mapper1和mapper2中的每一个value,将所述value所采用的key-value对放到hashmap,如果mapper1和mapper2中的所述value对应的key的value是A’,则将mapper1和mapper2中的所述value放到hashmapA中, 如果mapper1和mapper2中的所述value对应key的value是B”,则将其放到hashmapB中,由于在mapper1和mapper2中,所述value采用的是key-value对的形式,则,所述hashmapA和hashmapB中的key为所述mapper的value的key,value为所述mapper的value的value;
(vi)对hashmapA的每一个元素(keyA,valueA)和hashmapB的每一个元素(keyB,valueB)做运算,输出一个key-value对,其中key为(keyA,keyB),value为valueA*valueB;
步骤2:第二个job,该job由一个mapper和一个reduce完成,
(i)mapper:对每一个元素之间输出原样输出
(ii)reducer: 对key相同的元素进行分组,对值进行累加。
因此,本发明对矩阵A和矩阵B的元素进行正确的分组,使得矩阵A的第i列的元素与矩阵B的第k行的元素进入到同一个reduce的group中,并对该group中每一个来自A的元素和来自B的元素做一次乘积。
本发明只需要2个mapreduce操作就可以完成超大规模系数矩阵的乘法,减少算法的运行步骤和时间,并且本发明降低了对机器内存的要求,只需要机器能用hashmap存储矩阵A的每一行即可进行。
附图说明
图1 是根据本发明的实施例对基于mapreduce框架的超大规模稀疏矩阵利用两个job进行计算的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
本发明应用于mapreduce框架下的大规模稀疏矩阵乘法运算的方法,即求矩阵C,使得C=A*B,其中A的存储格式为(i,k,Aik),B的存储格式为(k,j,Bkj),C的存储格式为(i,j,Cij),其中1≤i≤m, 1≤k≤n, 1≤j≤l。整个算法由2个mapreduce的job完成:
步骤1:第一个job,该job需要两个mapper和1个reduce完成:
(i) 生成mapper1:对矩阵A的每一个元素(i,k,Aik),输出一个key-value对, mapper1的key和value分别为key-value对的形式,其中,key为(k, A’),value为(i, Aik), A’为常数,表示属于矩阵A;
(ii) 生成mapper2:对矩阵B的每一个元素(k,j,Bkj),输出一个key-value对, mapper2的key和value分别为key-value对的形式,其中,key为(k,B”),value为(j, Bkj) , B”为常数,表示属于矩阵B;
(iii) partitioner : 将mapper1和mapper2输出的key-value对按照key中的key-value对中的key 的hash进行partition;
(iv) groupingComprator: 将mapper1和mapper2输出的key-value对按照key中的key-value对中的key进行分组;
本领域技术人员能够明白,步骤1中的(iii)和(iv)均为mapreduce运算中的常规步骤。
 (v) reduce: 对reduce的每一个分组,声明两个hashmap,记为hashmapA和hashmapB,对mapper1和mapper2中的每一个value,将所述value所采用的key-value对放到hashmap,如果mapper1和mapper2中的所述value对应的key的value是A’,则将mapper1和mapper2中的所述value放到hashmapA中, 如果mapper1和mapper2中的所述value对应key的value是B”,则将其放到hashmapB中,由于在mapper1和mapper2中,所述value采用的是key-value对的形式,则,所述hashmapA和hashmapB中的key为所述mapper的value的key,value为所述mapper的value的value;
也就是说,放入到所述hashmapA中的key-value对应当为mapp1中的(i, Aik),放入hashmapB中的key-value对应当为mapp2中的(j, Bkj)。 
(vi)对hashmapA的每一个元素(keyA,valueA)和hashmapB的每一个元素(keyB,valueB)做运算,输出一个key-value对,其中key为(keyA,keyB),value为valueA*valueB;
例如,在hashmapA中具有元素(3,5),hashmapB中具有元素(5,7),则生成key-value对,其中key为(3,5),value为35,即(3,5,35);
(2)第二个job,该job由一个mapper和一个reduce完成
(i)mapper:对每一个元素之间输出原样输出
(ii)reducer: 对key相同的元素进行分组,对值进行累加。
例如,存在两个元素(3,5,35)和(3,5,41),则按相同的(3,5)进行分组,对35和41进行累加,得到(3,5,76)。
本发明对矩阵A和矩阵B的元素进行正确的分组,使得矩阵A的第i列的元素与矩阵B的第k行的元素进入到同一个reduce的group中,并对该group中每一个来自A的元素和来自B的元素做一次乘积。
本发明只需要2个mapreduce操作就可以完成超大规模系数矩阵的乘法,减少算法的运行步骤和时间,并且本发明降低了对机器内存的要求,只需要机器能用hashmap存储矩阵A的每一行即可进行。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定保护范围。

Claims (1)

1.一种基于mapreduce框架下的大规模稀疏矩阵乘法运算的方法,即求矩阵C,使得C=A*B,其中A的存储格式为(i,k,Aik),B的存储格式为(k,j,Bkj),C的存储格式为(i,j,Cij),其中1≤i≤m, 1≤k≤n, 1≤j≤l,所述算法由2个mapreduce的job完成,包括如下步骤:
步骤1:第一个job,该job需要两个mapper和1个reduce完成:
(i) 生成mapper1:对矩阵A的每一个元素(i,k,Aik),输出一个key-value对, mapper1的key和value分别为key-value对的形式,其中,key为(k, A’),value为(i, Aik), A’为常数,表示属于矩阵A;
(ii) 生成mapper2:对矩阵B的每一个元素(k,j,Bkj),输出一个key-value对, mapper2的key和value分别为key-value对的形式,其中,key为(k,B”),value为(j, Bkj) , B”为常数,表示属于矩阵B;
(iii) partitioner : 将mapper1和mapper2输出的key-value对按照key中的key-value对中的key 的hash进行partition;
(iv) groupingComprator: 将mapper1和mapper2输出的key-value对按照key中的key-value对中的key进行分组;
(v) reduce: 对reduce的每一个分组,声明两个hashmap,记为hashmapA和hashmapB,对mapper1和mapper2中的每一个value,将所述value所采用的key-value对放到hashmap,如果mapper1和mapper2中的所述value对应的key的value是A’,则将mapper1和mapper2中的所述value放到hashmapA中, 如果mapper1和mapper2中的所述value对应key的value是B”,则将其放到hashmapB中,由于在mapper1和mapper2中,所述value采用的是key-value对的形式,则,所述hashmapA和hashmapB中的key为所述mapper的value的key,value为所述mapper的value的value;
(vi)对hashmapA的每一个元素(keyA,valueA)和hashmapB的每一个元素(keyB,valueB)做运算,输出一个key-value对,其中key为(keyA,keyB),value为valueA*valueB;
步骤2:第二个job,该job由一个mapper和一个reduce完成,
(i)mapper:对每一个元素之间输出原样输出
(ii)reducer: 对key相同的元素进行分组,对值进行累加。
CN201410845357.XA 2014-12-31 2014-12-31 基于mapreduce框架的超大规模稀疏矩阵乘法运算的方法 Active CN104462023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410845357.XA CN104462023B (zh) 2014-12-31 2014-12-31 基于mapreduce框架的超大规模稀疏矩阵乘法运算的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410845357.XA CN104462023B (zh) 2014-12-31 2014-12-31 基于mapreduce框架的超大规模稀疏矩阵乘法运算的方法

Publications (2)

Publication Number Publication Date
CN104462023A true CN104462023A (zh) 2015-03-25
CN104462023B CN104462023B (zh) 2017-07-21

Family

ID=52908096

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410845357.XA Active CN104462023B (zh) 2014-12-31 2014-12-31 基于mapreduce框架的超大规模稀疏矩阵乘法运算的方法

Country Status (1)

Country Link
CN (1) CN104462023B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426344A (zh) * 2015-11-09 2016-03-23 南京大学 基于Spark的分布式大规模矩阵乘法的矩阵计算方法
CN112328962A (zh) * 2020-11-27 2021-02-05 深圳致星科技有限公司 矩阵运算优化方法、装置、设备和可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089840A (zh) * 2007-07-12 2007-12-19 浙江大学 基于多fpga的矩阵乘法并行计算系统
CN103106183A (zh) * 2013-01-29 2013-05-15 福建天晴数码有限公司 基于mapreduce的大规模稀疏矩阵乘法运算的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101089840A (zh) * 2007-07-12 2007-12-19 浙江大学 基于多fpga的矩阵乘法并行计算系统
CN103106183A (zh) * 2013-01-29 2013-05-15 福建天晴数码有限公司 基于mapreduce的大规模稀疏矩阵乘法运算的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ZHENG JIANHUA ETAL: "Sparse matrix multiplication algorithm based MapReduce", 《仲恺农业工程学院学报》 *
刘恒等: "基于随机游走路径的分布式SimRank算法", 《计算机科学与探索》 *
吴志川等: "高度可伸缩的稀疏矩阵乘法", 《计算机科学与探索》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426344A (zh) * 2015-11-09 2016-03-23 南京大学 基于Spark的分布式大规模矩阵乘法的矩阵计算方法
CN112328962A (zh) * 2020-11-27 2021-02-05 深圳致星科技有限公司 矩阵运算优化方法、装置、设备和可读存储介质

Also Published As

Publication number Publication date
CN104462023B (zh) 2017-07-21

Similar Documents

Publication Publication Date Title
CN103092060B (zh) 基于fpga的时间间隔测量系统与测量方法
Nesterov Towards non-symmetric conic optimization
US20150277965A1 (en) Incremental Parallel Processing of Data
CN103106183A (zh) 基于mapreduce的大规模稀疏矩阵乘法运算的方法
CN104820663A (zh) 发现低性能的sql语句以及预测sql语句性能的方法和装置
CN105138650A (zh) 一种基于孤立点挖掘的Hadoop数据清洗方法及系统
CN103245829B (zh) 一种虚拟机功耗测量方法
Zhu et al. Topology optimization of hinge-free compliant mechanisms using level set methods
CN104462023A (zh) 基于mapreduce框架的超大规模稀疏矩阵乘法运算的方法
WO2020103883A1 (zh) 执行矩阵乘法运算的方法、电路及soc
Zhang et al. A hierarchical low-rank approximation based network solver for emt simulation
CN106599172A (zh) 一种海量数据的无损保真可视化优化法
CN106326084A (zh) 一种用于粗粒度可重构阵列的系统级功耗建模方法
CN103544111A (zh) 一种基于实时性处理的混合基fft方法
US10013393B2 (en) Parallel computer system, parallel computing method, and program storage medium
Chang et al. Asynchronous distributed alternating direction method of multipliers: Algorithm and convergence analysis
CN104090895B (zh) 获取基数的方法、装置、服务器及系统
CN102722470B (zh) 一种线性方程组的单机并行求解方法
CN104731968A (zh) 一种单机的大规模数据集的聚类挖掘方法
Liu et al. Existence of positive solutions for Sturm-Liouville BVPs of singular fractional differential equations
CN102968414A (zh) 基于不同字段类型的高效单据录入方法
CN104318130A (zh) 一种拉线塔拉线的非线性计算方法
RU2013132608A (ru) Способ сценарного динамического моделирования технико-экономических показателей жизненного цикла объекта энергетики и программно-аппаратный комплекс для его реализации
CN104090994A (zh) 一种模型转换方法、测试方法、转换系统及测试系统
CN113822003B (zh) 一种基于fpga的静态时序分析延迟计算加速系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee after: Youku network technology (Beijing) Co.,Ltd.

Address before: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee before: 1VERGE INTERNET TECHNOLOGY (BEIJING) Co.,Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20200318

Address after: 310022 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Alibaba (China) Co.,Ltd.

Address before: 100080 Beijing Haidian District city Haidian street A Sinosteel International Plaza No. 8 block 5 layer A, C

Patentee before: Youku network technology (Beijing) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210407

Address after: 100102 Room 301, 3 / F, building 9, District 4, Wangjing East Garden, Chaoyang District, Beijing

Patentee after: ALIBABA (BEIJING) SOFTWARE SERVICE Co.,Ltd.

Address before: 310022 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: Alibaba (China) Co.,Ltd.

TR01 Transfer of patent right