CN104951427A - 以矩阵为中心的分布式计算框架 - Google Patents
以矩阵为中心的分布式计算框架 Download PDFInfo
- Publication number
- CN104951427A CN104951427A CN201510372041.8A CN201510372041A CN104951427A CN 104951427 A CN104951427 A CN 104951427A CN 201510372041 A CN201510372041 A CN 201510372041A CN 104951427 A CN104951427 A CN 104951427A
- Authority
- CN
- China
- Prior art keywords
- matrix
- block
- data
- search
- data volume
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种以矩阵为中心的分布式计算框架,执行如下步骤:计算框架读取数据,并根据数据生成稀疏矩阵;对稀疏矩阵进行预处理,并将稀疏矩阵进行逻辑分块以得到多个矩阵块;通过计算框架对多个矩阵块进行划分;根据划分后的矩阵块进行矩阵运算以提升数据的处理效率。该计算框架,解决分布式矩阵划分中对系统性能的均衡问题。该计算框架在划分中针对数据的矩阵特征进行优化,在数据倾斜、通信量和单机计算效率等性能上达到平衡。
Description
技术领域
本发明涉及分布式计算技术领域,特别涉及一种以矩阵为中心的分布式计算框架。
背景技术
在机器学习、图计算等领域,实际问题中的数据规模在不断增长,对现有计算框架的性能提出了更高要求,计算在准确性的基础上,还要更注重其计算、存储和通信等性能。在这些数据量较大的科学问题中,数据通常被抽象成稀疏矩阵形式,而在常见的算法中,对数据的处理也一般可以归结为基本的矩阵运算原语,即矩阵加法和乘法,而乘法的计算效率会更影响计算整体计算效率。
SpMV(稀疏矩阵向量乘法)是一个常用的计算内核,在大多数计算框架中被作为进行矩阵乘法的基本原语被实现。目前对SpMV的实现,运行效率普遍很低,一个主要原因是数据访问在时间和空间上均较差。目前对SpMV的实现中,主要对数据进行压缩,很少考虑到单机上数据间的关系和系统的通信成本。而且稀疏矩阵中的数据分布无规律可循,简单的存储分配策略会使不同节点上的计算量产生差异。所以在分布式环境中,对SpMV的优化主要需要从其存储策略上进行。不同的数据存储策略下,不同节点上的计算量均衡、系统通信量和单节点计算性能都会受到影响。
发明内容
本发明的目的旨在至少解决上述的技术缺陷之一。
为此,本发明的目的在于提出一种以矩阵为中心的分布式计算框架。该计算框架,解决分布式矩阵划分中对系统性能的均衡问题。该计算框架在划分中针对数据的矩阵特征进行优化,在数据倾斜、通信量和单机计算效率等性能上达到平衡。
为了实现上述目的,本发明的实施例公开了一种以矩阵为中心的分布式计算框架,执行如下步骤:计算框架读取数据,并根据所述数据生成稀疏矩阵;对所述稀疏矩阵进行预处理,并将所述稀疏矩阵进行逻辑分块以得到多个矩阵块;通过所述计算框架对所述多个矩阵块进行划分;以及根据划分后的矩阵块进行矩阵运算以提升所述数据的处理效率。
根据本发明实施例的以矩阵为中心的分布式计算框架,解决分布式矩阵划分中对系统性能的均衡问题。该计算框架在划分中针对数据的矩阵特征进行优化,在数据倾斜、通信量和单机计算效率等性能上达到平衡。
另外,根据本发明上述实施例的以矩阵为中心的分布式计算框架还可以具有如下附加的技术特征:
在一些示例中,所述计算框架读取数据,并根据所述数据生成稀疏矩阵,进一步包括:所述计算框架读取所述数据,并以行压缩格式存储以得到所述稀疏矩阵。
在一些示例中,其中,所述矩阵块的大小1K*1K。
在一些示例中,所述通过计算框架对所述多个矩阵块进行划分,进一步包括:S1:计算当前节点可分配到的数据量的阀值;S2:在当前的稀疏矩阵中进行搜索,并将搜索到的第一矩阵块分配给所述当前节点,以及对所述当前节点上的数据量进行更新;S3:如果更新后的所述当前节点的数据量未达到所述数据量的阀值,或者分配下一矩阵块后所述当前节点的数据量与所述数据量的阀值之间的差值小于第一预设值,则以逐层扩张的方式,搜索最邻近的矩阵块并进行分配;S4:在所述当前节点分配完成之后转向下一节,并重复执行所述步骤S1至S4。
在一些示例中,所述第一矩阵块的搜索原则为:以靠近所述稀疏矩阵的顶端进行搜索。
在一些示例中,所述分配下一矩阵块后所述当前节点的数据量与所述数据量的阀值之间的差值小于第一预设值指:当所述当前节点分配了某一矩阵块后,所述当前节点上的数据量与所述阀值的差大于阀值与分配前数据量的差。
在一些示例中,所述搜索最邻近矩阵块,进一步包括:搜索方式,从左侧开始,以逆时针循环逐层增加的顺序,首先检查当前层内可用的矩阵块,其中,搜索的优先级为以源矩阵块的下、右、上、左进行;如果当前一层没有可用的数据块,则以所述当前一层的第一个矩阵块作为源矩阵块,搜索下一层的起始位置,其中,所述下一层仍以所述搜索方式进行搜索;如果无法找到所述下一层的起始位置,则重新搜索所述第一个矩阵块,并进行分配。
在一些示例中,所述数据量的阈值为当前剩余的未分配的数据量/剩余节点个数。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的以矩阵为中心的分布式计算框架的数据处理流程图;
图2是根据本发明一个实施例的以矩阵为中心的分布式计算框架的稀疏矩阵划分的流程图;
图3是根据本发明一个实施例的以矩阵为中心的分布式计算框架的稀疏矩阵划分中搜索下一个矩阵块的流程图;以及
图4是根据本发明一个实施例的以矩阵为中心的分布式计算框架的稀疏矩阵划分中搜索下一个临近矩阵块的示意图。
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
以下结合附图描述根据本发明上述实施例的以矩阵为中心的分布式计算框架。
图1是根据本发明一个实施例的以矩阵为中心的分布式计算框架的数据处理流程图。如图1所示,根据本发明一个实施例的以矩阵为中心的分布式计算框架,执行如下步骤:
S101:计算框架读取数据,并根据数据生成稀疏矩阵。
在本发明的一个实施例中,计算框架读取所述数据,并以行压缩格式存储以得到稀疏矩阵,即:将数据读入计算框架,并以行压缩格式存储,从而将读入的数据转换为稀疏矩阵的形式。
S102:对稀疏矩阵进行预处理,并将稀疏矩阵进行逻辑分块以得到多个矩阵块。
具体而言,将稀疏矩阵按实际情况分割为若干大小的矩阵块。一般矩阵块大小选择为1K*1K,即:矩阵块的大小1K*1K。
S103:通过计算框架对多个矩阵块进行划分。
如图2所示,在本发明的一个实施例中,可以通过如下方式进行划分,包括:
S1:计算当前节点可分配到的数据量的阀值。其中,数据量可以但不限于用非零元个数表示。对数据量的阀值设定为:当前剩余的未分配数据量/剩余节点个数。
S2:在当前的稀疏矩阵中进行搜索,并将搜索到的第一矩阵块分配给当前节点,以及对当前节点上的数据量进行更新。
其中,第一个数据块(即第一矩阵块)的搜索原则为尽量靠近矩阵的顶端,即:以靠近稀疏矩阵的顶端进行搜索。
S3:如果更新后的当前节点的数据量未达到数据量的阀值,或者分配下一矩阵块后当前节点的数据量与数据量的阀值之间的差值小于第一预设值,则以逐层扩张的方式,搜索最邻近的矩阵块并进行分配。
也就是说,在未达到阀值时,或分配下一数据块后不会明显超过阀值时,以逐层扩张的方式,搜索最邻近的矩阵块并分配。其中,对明显超过阀值的判断为,分配了某一矩阵块后,节点上数据量的值与阀值的差,大于阀值与分配前数据量的差,即:分配下一矩阵块后当前节点的数据量与所述数据量的阀值之间的差值小于第一预设值指:当当前节点分配了某一矩阵块后,当前节点上的数据量与阀值的差大于阀值与分配前数据量的差。
S4:在当前节点分配完成之后转向下一节,并重复执行步骤S1至S4。
S104:根据划分后的矩阵块进行矩阵运算以提升数据的处理效率。具体而言,在该计算框架中,对计算性能的评测包括单机计算效率均衡性,节点间计算量差异和全局通信量。单机计算效率通过不同节点间分配的数据的差异跨度衡量;计算量差异通过节点间存储数据量与平均值的偏差衡量;全局通信量通过计算每个节点需要收发的数据量衡量。
如图3所示,并结合图4,在上述步骤S3中,搜索最邻近矩阵块,进一步包括:
1、搜索方式,从左侧开始,以逆时针循环逐层增加的顺序,首先检查当前层内可用的矩阵块,其中,搜索的优先级为以源矩阵块的下、右、上、左进行。
例如:按图4所示的顺序,首先检查当前层内可用的矩阵块。搜索的优先级按源矩阵块的下、右、上、左进行。
2、如果当前一层没有可用的数据块,则以当前一层的第一个矩阵块作为源矩阵块,搜索下一层的起始位置,其中,下一层仍以搜索方式进行搜索。也就是说,如果当前一层已经没有可用的数据块,则以当前一层的第一个分配的矩阵块作为源矩阵块,搜索下一层的起始位置。搜索优先级与图4所示的优先级相同,搜索的顺序为源矩阵块的左、下、右、上依次进行。
3、如果无法找到下一层的起始位置,则重新搜索第一个矩阵块,并进行分配。即:如果无法找到下一层的起始位置,则重新搜索第一个矩阵块,进行分配。
根据本发明实施例的以矩阵为中心的分布式计算框架,解决分布式矩阵划分中对系统性能的均衡问题。该计算框架在划分中针对数据的矩阵特征进行优化,在数据倾斜、通信量和单机计算效率等性能上达到平衡。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (8)
1.一种以矩阵为中心的分布式计算框架,其特征在于,执行如下步骤:
计算框架读取数据,并根据所述数据生成稀疏矩阵;
对所述稀疏矩阵进行预处理,并将所述稀疏矩阵进行逻辑分块以得到多个矩阵块;
通过所述计算框架对所述多个矩阵块进行划分;以及
根据划分后的矩阵块进行矩阵运算以提升所述数据的处理效率。
2.根据权利要求1所述的以矩阵为中心的分布式计算框架,其特征在于,所述计算框架读取数据,并根据所述数据生成稀疏矩阵,进一步包括:
所述计算框架读取所述数据,并以行压缩格式存储以得到所述稀疏矩阵。
3.根据权利要求1所述的以矩阵为中心的分布式计算框架,其特征在于,其中,所述矩阵块的大小1K*1K。
4.根据权利要求1所述的以矩阵为中心的分布式计算框架,其特征在于,所述通过计算框架对所述多个矩阵块进行划分,进一步包括:
S1:计算当前节点可分配到的数据量的阀值;
S2:在当前的稀疏矩阵中进行搜索,并将搜索到的第一矩阵块分配给所述当前节点,以及对所述当前节点上的数据量进行更新;
S3:如果更新后的所述当前节点的数据量未达到所述数据量的阀值,或者分配下一矩阵块后所述当前节点的数据量与所述数据量的阀值之间的差值小于第一预设值,则以逐层扩张的方式,搜索最邻近的矩阵块并进行分配;
S4:在所述当前节点分配完成之后转向下一节,并重复执行所述步骤S1至S4。
5.根据权利要求4所述的以矩阵为中心的分布式计算框架,其特征在于,所述第一矩阵块的搜索原则为:以靠近所述稀疏矩阵的顶端进行搜索。
6.根据权利要求4所述的以矩阵为中心的分布式计算框架,其特征在于,所述分配下一矩阵块后所述当前节点的数据量与所述数据量的阀值之间的差值小于第一预设值指:当所述当前节点分配了某一矩阵块后,所述当前节点上的数据量与所述阀值的差大于阀值与分配前数据量的差。
7.根据权利要求4所述的以矩阵为中心的分布式计算框架,其特征在于,所述搜索最邻近矩阵块,进一步包括:
搜索方式,从左侧开始,以逆时针循环逐层增加的顺序,首先检查当前层内可用的矩阵块,其中,搜索的优先级为以源矩阵块的下、右、上、左进行;
如果当前一层没有可用的数据块,则以所述当前一层的第一个矩阵块作为源矩阵块,搜索下一层的起始位置,其中,所述下一层仍以所述搜索方式进行搜索;
如果无法找到所述下一层的起始位置,则重新搜索所述第一个矩阵块,并进行分配。
8.根据权利要求4所述的以矩阵为中心的分布式计算框架,其特征在于,其中,所述数据量的阈值为当前剩余的未分配的数据量/剩余节点个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510372041.8A CN104951427B (zh) | 2015-06-30 | 2015-06-30 | 以矩阵为中心的分布式计算框架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510372041.8A CN104951427B (zh) | 2015-06-30 | 2015-06-30 | 以矩阵为中心的分布式计算框架 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104951427A true CN104951427A (zh) | 2015-09-30 |
CN104951427B CN104951427B (zh) | 2019-01-11 |
Family
ID=54166090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510372041.8A Active CN104951427B (zh) | 2015-06-30 | 2015-06-30 | 以矩阵为中心的分布式计算框架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104951427B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426344A (zh) * | 2015-11-09 | 2016-03-23 | 南京大学 | 基于Spark的分布式大规模矩阵乘法的矩阵计算方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834906A (zh) * | 2009-12-31 | 2010-09-15 | 中国科学院声学研究所 | 一种分布式任务处理和协作的多尺度服务单元选择方法 |
CN103188345A (zh) * | 2013-03-01 | 2013-07-03 | 北京邮电大学 | 分布式动态负载管理系统和方法 |
EP2657842A1 (en) * | 2012-04-23 | 2013-10-30 | Fujitsu Limited | Workload optimization in a multi-processor system executing sparse-matrix vector multiplication |
CN103716381A (zh) * | 2013-12-12 | 2014-04-09 | 华为技术有限公司 | 一种分布式系统的控制方法,及管理节点 |
CN103763378A (zh) * | 2014-01-24 | 2014-04-30 | 中国联合网络通信集团有限公司 | 基于分布式流式计算系统的任务处理方法、系统及节点 |
CN104052820A (zh) * | 2014-06-27 | 2014-09-17 | 国家计算机网络与信息安全管理中心 | 一种分布式云计算平台的动态节能资源调度系统及方法 |
US8943011B2 (en) * | 2011-06-28 | 2015-01-27 | Salesforce.Com, Inc. | Methods and systems for using map-reduce for large-scale analysis of graph-based data |
WO2015021845A1 (en) * | 2013-08-15 | 2015-02-19 | Tencent Technology (Shenzhen) Company Limited | Devices and methods for processing network nodes |
CN104461466A (zh) * | 2013-09-25 | 2015-03-25 | 广州中国科学院软件应用技术研究所 | 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 |
US20150088953A1 (en) * | 2013-09-23 | 2015-03-26 | Infosys Limited | Methods, systems and computer-readable media for distributed probabilistic matrix factorization |
CN104636273A (zh) * | 2015-02-28 | 2015-05-20 | 中国科学技术大学 | 一种带多级Cache的SIMD众核处理器上的稀疏矩阵存储方法 |
-
2015
- 2015-06-30 CN CN201510372041.8A patent/CN104951427B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834906A (zh) * | 2009-12-31 | 2010-09-15 | 中国科学院声学研究所 | 一种分布式任务处理和协作的多尺度服务单元选择方法 |
US8943011B2 (en) * | 2011-06-28 | 2015-01-27 | Salesforce.Com, Inc. | Methods and systems for using map-reduce for large-scale analysis of graph-based data |
EP2657842A1 (en) * | 2012-04-23 | 2013-10-30 | Fujitsu Limited | Workload optimization in a multi-processor system executing sparse-matrix vector multiplication |
CN103188345A (zh) * | 2013-03-01 | 2013-07-03 | 北京邮电大学 | 分布式动态负载管理系统和方法 |
WO2015021845A1 (en) * | 2013-08-15 | 2015-02-19 | Tencent Technology (Shenzhen) Company Limited | Devices and methods for processing network nodes |
US20150088953A1 (en) * | 2013-09-23 | 2015-03-26 | Infosys Limited | Methods, systems and computer-readable media for distributed probabilistic matrix factorization |
CN104461466A (zh) * | 2013-09-25 | 2015-03-25 | 广州中国科学院软件应用技术研究所 | 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法 |
CN103716381A (zh) * | 2013-12-12 | 2014-04-09 | 华为技术有限公司 | 一种分布式系统的控制方法,及管理节点 |
CN103763378A (zh) * | 2014-01-24 | 2014-04-30 | 中国联合网络通信集团有限公司 | 基于分布式流式计算系统的任务处理方法、系统及节点 |
CN104052820A (zh) * | 2014-06-27 | 2014-09-17 | 国家计算机网络与信息安全管理中心 | 一种分布式云计算平台的动态节能资源调度系统及方法 |
CN104636273A (zh) * | 2015-02-28 | 2015-05-20 | 中国科学技术大学 | 一种带多级Cache的SIMD众核处理器上的稀疏矩阵存储方法 |
Non-Patent Citations (1)
Title |
---|
《计算机科学与探索》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426344A (zh) * | 2015-11-09 | 2016-03-23 | 南京大学 | 基于Spark的分布式大规模矩阵乘法的矩阵计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104951427B (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ferreau et al. | An online active set strategy to overcome the limitations of explicit MPC | |
CN107122490B (zh) | 一种分组查询中聚合函数的数据处理方法及系统 | |
KR20100013257A (ko) | 멀티 프로세서 시스템 상에서 데이터 세트를 분할 및 정렬하는 방법 및 장치 | |
CN102866915A (zh) | 虚拟化集群整合方法、装置及虚拟化集群系统 | |
CN102868733A (zh) | 虚拟网络资源再映射方法 | |
CN103401939A (zh) | 一种采用混合调度策略的负载均衡方法 | |
CN107133190A (zh) | 一种机器学习系统的训练方法和训练系统 | |
CN103067297A (zh) | 一种基于资源消耗预测的动态负载均衡方法及装置 | |
CN104636187A (zh) | 基于负载预测的numa架构中虚拟机调度方法 | |
CN105550274A (zh) | 双副本并行数据库的查询方法和装置 | |
CN105808339A (zh) | 大数据并行计算方法及装置 | |
CN109408452A (zh) | 拟态工控处理器及数据处理方法 | |
CN103853500A (zh) | 一种基于海量数据的数据分配方法、装置及系统 | |
CN115827253B (zh) | 一种芯片资源算力分配方法、装置、设备及存储介质 | |
CN104243531A (zh) | 一种数据处理的方法、装置及系统 | |
CN113641481A (zh) | 一种采用dqn的fpga任务调度优化方法及系统 | |
CN103455518A (zh) | 一种数据处理方法及装置 | |
CN104951427A (zh) | 以矩阵为中心的分布式计算框架 | |
CN103959202A (zh) | 包括基于非内核域在功率节省状态下的驻留时间确定装置的最佳功率状态的用于能量效率和能量节约的方法、装置及系统 | |
CN111083189A (zh) | 用于在运行时处理数据倾斜的系统和方法 | |
CN103942315A (zh) | 一种基于装载因子的缓存数据预加载与替换方法 | |
CN108733781A (zh) | 基于内存计算的集群时态数据索引方法 | |
CN104408206A (zh) | 分布式支持向量聚类的方法及系统 | |
Ma et al. | SE-PSO: resource scheduling strategy for multimedia cloud platform based on security enhanced virtual migration | |
CN106933882B (zh) | 一种大数据增量计算方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |