以矩阵为中心的分布式计算框架的制作方法

文档序号:9235404阅读:421来源:国知局
以矩阵为中心的分布式计算框架的制作方法
【技术领域】
[0001]本发明涉及分布式计算技术领域,特别涉及一种以矩阵为中心的分布式计算框架。
【背景技术】
[0002]在机器学习、图计算等领域,实际问题中的数据规模在不断增长,对现有计算框架的性能提出了更高要求,计算在准确性的基础上,还要更注重其计算、存储和通信等性能。在这些数据量较大的科学问题中,数据通常被抽象成稀疏矩阵形式,而在常见的算法中,对数据的处理也一般可以归结为基本的矩阵运算原语,即矩阵加法和乘法,而乘法的计算效率会更影响计算整体计算效率。
[0003]SpMV(稀疏矩阵向量乘法)是一个常用的计算内核,在大多数计算框架中被作为进行矩阵乘法的基本原语被实现。目前对SpMV的实现,运行效率普遍很低,一个主要原因是数据访问在时间和空间上均较差。目前对SpMV的实现中,主要对数据进行压缩,很少考虑到单机上数据间的关系和系统的通信成本。而且稀疏矩阵中的数据分布无规律可循,简单的存储分配策略会使不同节点上的计算量产生差异。所以在分布式环境中,对SpMV的优化主要需要从其存储策略上进行。不同的数据存储策略下,不同节点上的计算量均衡、系统通信量和单节点计算性能都会受到影响。

【发明内容】

[0004]本发明的目的旨在至少解决上述的技术缺陷之一。
[0005]为此,本发明的目的在于提出一种以矩阵为中心的分布式计算框架。该计算框架,解决分布式矩阵划分中对系统性能的均衡问题。该计算框架在划分中针对数据的矩阵特征进行优化,在数据倾斜、通信量和单机计算效率等性能上达到平衡。
[0006]为了实现上述目的,本发明的实施例公开了一种以矩阵为中心的分布式计算框架,执行如下步骤:计算框架读取数据,并根据所述数据生成稀疏矩阵;对所述稀疏矩阵进行预处理,并将所述稀疏矩阵进行逻辑分块以得到多个矩阵块;通过所述计算框架对所述多个矩阵块进行划分;以及根据划分后的矩阵块进行矩阵运算以提升所述数据的处理效率。
[0007]根据本发明实施例的以矩阵为中心的分布式计算框架,解决分布式矩阵划分中对系统性能的均衡问题。该计算框架在划分中针对数据的矩阵特征进行优化,在数据倾斜、通信量和单机计算效率等性能上达到平衡。
[0008]另外,根据本发明上述实施例的以矩阵为中心的分布式计算框架还可以具有如下附加的技术特征:
[0009]在一些示例中,所述计算框架读取数据,并根据所述数据生成稀疏矩阵,进一步包括:所述计算框架读取所述数据,并以行压缩格式存储以得到所述稀疏矩阵。
[0010]在一些示例中,其中,所述矩阵块的大小1K*1K。
[0011]在一些示例中,所述通过计算框架对所述多个矩阵块进行划分,进一步包括:S1:计算当前节点可分配到的数据量的阀值;S2:在当前的稀疏矩阵中进行搜索,并将搜索到的第一矩阵块分配给所述当前节点,以及对所述当前节点上的数据量进行更新;S3:如果更新后的所述当前节点的数据量未达到所述数据量的阀值,或者分配下一矩阵块后所述当前节点的数据量与所述数据量的阀值之间的差值小于第一预设值,则以逐层扩张的方式,搜索最邻近的矩阵块并进行分配;S4:在所述当前节点分配完成之后转向下一节,并重复执行所述步骤SI至S4。
[0012]在一些示例中,所述第一矩阵块的搜索原则为:以靠近所述稀疏矩阵的顶端进行搜索。
[0013]在一些示例中,所述分配下一矩阵块后所述当前节点的数据量与所述数据量的阀值之间的差值小于第一预设值指:当所述当前节点分配了某一矩阵块后,所述当前节点上的数据量与所述阀值的差大于阀值与分配前数据量的差。
[0014]在一些示例中,所述搜索最邻近矩阵块,进一步包括:搜索方式,从左侧开始,以逆时针循环逐层增加的顺序,首先检查当前层内可用的矩阵块,其中,搜索的优先级为以源矩阵块的下、右、上、左进行;如果当前一层没有可用的数据块,则以所述当前一层的第一个矩阵块作为源矩阵块,搜索下一层的起始位置,其中,所述下一层仍以所述搜索方式进行搜索;如果无法找到所述下一层的起始位置,则重新搜索所述第一个矩阵块,并进行分配。
[0015]在一些示例中,所述数据量的阈值为当前剩余的未分配的数据量/剩余节点个数。
[0016]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0017]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
[0018]图1是根据本发明一个实施例的以矩阵为中心的分布式计算框架的数据处理流程图;
[0019]图2是根据本发明一个实施例的以矩阵为中心的分布式计算框架的稀疏矩阵划分的流程图;
[0020]图3是根据本发明一个实施例的以矩阵为中心的分布式计算框架的稀疏矩阵划分中搜索下一个矩阵块的流程图;以及
[0021]图4是根据本发明一个实施例的以矩阵为中心的分布式计算框架的稀疏矩阵划分中搜索下一个临近矩阵块的示意图。
【具体实施方式】
[0022]下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0023]在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0024]在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0025]以下结合附图描述根据本发明上述实施例的以矩阵为中心的分布式计算框架。
[0026]图1是根据本发明一个实施例的以矩阵为中心的分布式计算框架的数据处理流程图。如图1所示,根据本发明一个实施例的以矩阵为中心的分布式计算框架,执行如下步骤:
[0027]SlOl:计算框架读取数据,并根据数据生成稀疏矩阵。
[0028]在本发明的一个实施例中,计算框架读取所述数据,并以行压缩格式存储以得到稀疏矩阵,即:将数据读入计算框架,并以行压缩格式存储,从而将读入的数据转换为稀疏矩阵的形式。
[0029]S102:对稀疏矩阵进行预处理,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1