一种矩阵数据元素标识连续化方法和系统技术方案

技术编号:11614214 阅读:103 留言:0更新日期:2015-06-17 14:08
本发明专利技术公开了一种矩阵数据元素标识连续化方法和系统,涉及计算机领域。所述方法包括:针对N个计算节点,每个参与计算的计算节点读取矩阵数据中被分配给该计算节点的矩阵分块的数据元素;每个参与计算的计算节点根据预置的数据标识散步规则,将所读取的数据元素中的数据标识保留在本地或者发送到相应的计算节点,并接收剩余N-1个计算节点发送的数据标识,获得由所述计算节点进行处理的最终数据标识;每个参与计算的计算节点根据所述最终数据标识进行连续化,获得与每个数据标识相应的第一标识;每个参与计算的计算节点将第一标识与原数据标识的对应关系通知给其他计算节点。对于大规模的矩阵数据,可以通过各个计算节点并行的进行连续化,加快了连续化的速度,提高了数据处理效率。

【技术实现步骤摘要】

本专利技术涉及计算机领域,特别是涉及一种矩阵数据元素标识连续化方法和系统
技术介绍
在大规模并行计算中,很重要一类计算是矩阵或向量的计算。通常描述矩阵采用 (Rowkey, colkey, value)的三元组(其中Rowkey, colkey分别为行标、列标,value为实际 存储的数据内容),这样可以采用稀疏的存储方式,从而减少存储空间。用户再将矩阵按照 行(Rowkey)或者列(colkey)进行划分,将数据散布到多个计算结点(也即计算服务器) 上,从而达到并行计算的目的。通常为了唯一标识矩阵中每个数据元素,输入的Rowkey和 colkey采用位数较多(64位,128位)的签名。而在实际的计算过程中,Rowkey和colkey 仅作为一个下标,并不需要很多的位数。因此为了减少节点内存存储空间,并且方便计算时 顺序访问,常常要对key和colkey进行连续的id化,即将Rowkey和colkey都转换为连续 的0-N的整数列。 现有技术中,存在一种对矩阵数据的的存储标识进行id化的方法是串行id化方 法,即采用一个计算节点,逐个获取矩阵中的数据元素将其行标和列标进行id化,但是该 种方法处理效率低,时间长。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上 述问题的一种矩阵数据元素标识连续化装置和相应的一种矩阵数据元素标识连续化方法。 依据本专利技术的一个方面,提供了一种矩阵数据元素标识连续化方法,包括: 针对N个计算节点,每个参与计算的计算节点读取矩阵数据中被分配给该计算节 点的矩阵分块的数据元素; 每个参与计算的计算节点根据预置的数据标识散步规则,将所读取的数据元素中 的数据标识保留在本地或者发送到相应的计算节点,并接收剩余N-1个计算节点发送的数 据标识,获得由所述计算节点进行处理的最终数据标识; 每个参与计算的计算节点根据所述最终数据标识进行连续化,获得与每个数据标 识相应的第一标识; 每个参与计算的计算节点将第一标识与原数据标识的对应关系通知给其他计算 节点。 可选的,所述每个参与计算的计算节点读取矩阵数据中被分配给该计算节点的矩 阵分块的数据元素包括: 每个参与计算的计算节点读取矩阵数据中按行分块的数据元素,或者按列分块的 数据元素。 可选的,所述每个参与计算的计算节点根据预置的数据标识散步规则,将所读取 的数据元素中的数据标识保留在本地或者发送到相应的计算节点包括: 每个参与计算的计算节点根据阈值的列标识散步规则,将所读取的数据元素中的 列标识保留在本地或者发送到相应的计算节点;并接收其他N-1个计算节点发送的列标 识。 可选的,所述每个参与计算的计算节点根据所述最终数据标识进行连续化,获得 与每个数据标识相应的第一标识包括: 每个参与计算的计算节点根据本地的行标识生成行标识向量,并对行标识向量进 行连续化,获得与每个行标识相应的第一行标识; 每个参与计算的计算节点对本地的列标识进行去重并生成列标识向量,并对列标 识向量进行连续化,获得与每个列标识相应的第一列标识。 可选的,所述每个参与计算的计算节点将第一标识与原数据标识的对应关系通知 给其他计算节点包括: 每个参与计算的计算节点根据第一列标识与原列标识的对应关系,将第一列标识 通知给其他计算节点。 可选的,所述每个参与计算的计算节点根据预置的数据标识散步规则,将所读取 的数据元素中的数据标识保留在本地或者发送到相应的计算节点包括: 每个参与计算的计算节点根据阈值的行标识散步规则,将所读取的数据元素中的 行标识保留在本地或者发送到相应的计算节点;并接收其他计算节点发送的行标识。 可选的,所述每个参与计算的计算节点根据所述最终数据标识进行连续化,获得 与每个数据标识相应的第一标识包括: 每个参与计算的计算节点根据本地的列标识生成行标识向量,并对列标识向量进 行连续化,获得与每个列标识相应的第一列标识; 每个参与计算的计算节点对本地的行标识进行去重并生成行标识向量,并对行标 识向量进行连续化,获得与每个行标识相应的第一行标识。 可选的,所述每个参与计算的计算节点将第一标识与原数据标识的对应关系通知 给其他计算节点包括: 每个参与计算的计算节点根据第一行标识与原行标识的对应关系,将第一行标识 通知给其他计算节点。 可选的,所述对向量进行连续化包括: 每个参与计算的计算节点i统计待计算的标识总数Ni,并将所述总数通知给其他 计算节点; 每个参与计算的计算节点根据各计算节点待计算的标识总数Ni,计算本节点起始 的第一标识; 每个参与计算的计算节点根据本节点的起始的第一标识,对本节点的标识向量进 行连续化,获得相应的第一标识。 依据本专利技术的另一个方面,提供一种矩阵数据元素标识连续化系统,包括: N个计算节点; 所述每个参与计算的计算节点包括: 数据读取模块,适于每个参与计算的计算节点读取矩阵数据中被分配给该计算节 点的矩阵分块的数据元素; 散步和接收模块,适于每个参与计算的计算节点根据预置的数据标识散步规则, 将所读取的数据元素中的数据标识保留在本地或者发送到相应的计算节点,并接收剩余 N-1个计算节点发送的数据标识,获得由所述计算节点进行处理的最终数据标识; 连续化模块,适于每个参与计算的计算节点根据所述最终数据标识进行连续化, 获得与每个数据标识相应的第一标识; 通知模块,适于每个参与计算的计算节点将第一标识与原数据标识的对应关系通 知给其他计算节点。 可选的,所述数据读取模块进一步适于: 每个参与计算的计算节点读取矩阵数据中按行分块的数据元素,或者按列分块的 数据元素。 可选的,当每个参与计算的计算节点读取矩阵数据中按行分块的数据元素时,所 述散步和接收模块包括: 列散步和接收模块,适于每个参与计算的计算节点根据阈值的列标识散步规则, 将所读取的数据元素中的列标识保留在本地或者发送到相应的计算节点;并接收其他N-1 个计算节点发送的列标识。 可选的,所述连续化模块包括: 第一行连续化模块,适于每个参与计算的计算节点根据本地的行标识生成行标识 向量,并对行标识向量进行连续当前第1页1 2 3 4 本文档来自技高网...
一种矩阵数据元素标识连续化方法和系统

【技术保护点】
一种矩阵数据元素标识连续化方法,其特征在于,包括:针对N个计算节点,每个参与计算的计算节点读取矩阵数据中被分配给该计算节点的矩阵分块的数据元素;每个参与计算的计算节点根据预置的数据标识散步规则,将所读取的数据元素中的数据标识保留在本地或者发送到相应的计算节点,并接收剩余N‑1个计算节点发送的数据标识,获得由所述计算节点进行处理的最终数据标识;每个参与计算的计算节点根据所述最终数据标识进行连续化,获得与每个数据标识相应的第一标识;每个参与计算的计算节点将第一标识与原数据标识的对应关系通知给其他计算节点。

【技术特征摘要】

【专利技术属性】
技术研发人员:齐路何锐邦唐会军
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1