大数据并行计算方法及装置与流程

文档序号:17689610发布日期:2019-05-17 20:56阅读:255来源:国知局
大数据并行计算方法及装置与流程

本发明实施例涉及分布式技术领域,尤其涉及一种大数据并行计算方法及装置。



背景技术:

分布式计算能够实现使一个大任务分成多个小任务,将多个小任务分配到多个计算节点,多个计算节点并行计算多个小任务得到多个计算结果,最后将多个计算结果合并为大任务的计算结果。

现有技术中,分布式计算具体可将大数据分成多个数据块,将多个数据块分配到多个计算节点,由多个计算节点对多个数据块进行并行处理,实现对大数据的并行计算。

但是现有技术对大数据的分块采用固定分块方法,即无论大数据有多大,都将其分成预设大小的分块,由于各计算节点的计算性能不同、执行计算任务的数量不同,导致各计算节点对预设大小分块的处理能力也不同,某个计算节点对预设大小分块的延时处理将导致大数据的并行计算性能降低。



技术实现要素:

本发明实施例提供一种大数据并行计算方法及装置,以提高大数据的并行计算性能。

第一方面,本发明提供一种大数据并行计算方法,包括:

依据数据集大小、集群内存大小和并行度对数据集进行分块,获得由多个数据分块构成的分块数据集;

将所述分块数据集作为逻辑回归分类算法的训练数据集,求解逻辑回归函数的最优权重向量以获得逻辑回归分类器。

结合第一方面,在第一种可能的实现方式中,所述数据集是原始数据集经过解析获得的数据集;

所述依据数据集大小、集群内存大小和并行度对数据集进行分块包括:

依据所述数据集大小确定所述分块数据集占用所述集群内存的比例;

依据所述分块数据集占用所述集群内存的比例确定所述集群的剩余内存大小;

依据所述剩余内存大小和所述并行度确定所述数据分块的大小。

结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述数据分块的大小partition满足公式(1):

其中,mem表示所述集群内存大小,memoryFraction表示所述分块数据集大小与所述集群内存大小的比值,parallelism表示所述并行度,mem×(1-memoryFraction)表示所述剩余内存大小。

结合第一方面,在第三种可能的实现方式中,还包括:

若mem×(1-memoryFraction)大于或等于所述数据集大小的3倍,则减小所述并行度;

依据所述集群中计算节点的资源信息为所述计算节点分配所述数据分块,所述资源信息至少包括:内存大小、计算性能和等待执行任务数。

结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述将所述分块数据集作为逻辑回归分类算法的训练数据集,求解逻辑回归函数的最优权重向量以获得逻辑回归分类器包括:

将所述分块数据集作为所述逻辑回归分类算法的训练数据集,计算所述逻辑回归函数在当前权重向量的梯度;

若所述梯度不为0,则计算所述当前权重向量的迭代步长,并获得迭代后的权重向量,所述迭代后的权重向量等于所述当前权重向量加所述迭代步长;

若所述当前权重向量对应所述逻辑回归函数的第一函数值减去所述迭代后的权重向量对应所述逻辑回归函数的第二函数值大于第一预设值,则将所述迭代后的权重向量作为所述当前权重向量,重复计算所述逻辑回归函数在所述当前权重向量的梯度,直到所述梯度为0时获得所述最优权重向量,从而得到逻辑回归分类器。

结合第一方面,在第五种可能的实现方式中,所述将所述迭代后的权重向量作为所述当前权重向量之后,还包括:

若所述第一函数值减去所述第二函数值大于第二预设值,则增大所述迭代步长对应的置信区间;

若所述第一函数值减去所述第二函数值小于第二预设值,则减小所述迭代步长对应的置信区间。

第二方面,本发明提供一种大数据并行计算装置,包括:

分块模块,用于依据数据集大小、集群内存大小和并行度对数据集进行分块,获得由多个数据分块构成的分块数据集;

计算模块,用于将所述分块数据集作为逻辑回归分类算法的训练数据集,求解逻辑回归函数的最优权重向量以获得逻辑回归分类器。

结合第二方面,在第一种可能的实现方式中,所述数据集是原始数据集经过解析获得的数据集;

所述分块模块具体用于依据所述数据集大小确定所述分块数据集占用所述集群内存的比例;依据所述分块数据集占用所述集群内存的比例确定所述集群的剩余内存大小;依据所述剩余内存大小和所述并行度确定所述数据分块的大小。

结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述数据分块的大小partition满足公式(1):

其中,mem表示所述集群内存大小,memoryFraction表示所述分块数据集大小与所述集群内存大小的比值,parallelism表示所述并行度,mem×(1-memoryFraction)表示所述剩余内存大小。

结合第二方面,在第三种可能的实现方式中,还包括:

调整模块,用于若mem×(1-memoryFraction)大于或等于所述数据集大小的3倍,则减小所述并行度;

分配模块,用于依据所述集群中计算节点的资源信息为所述计算节点分配所述数据分块,所述资源信息至少包括:内存大小、计算性能和等待执行任务数。

结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述计算模块包括:

梯度计算单元,用于将所述分块数据集作为所述逻辑回归分类算法的训练数据集,计算所述逻辑回归函数在当前权重向量的梯度;

迭代步长计算单元,用于若所述梯度不为0,则计算所述当前权重向量的迭代步长,并获得迭代后的权重向量,所述迭代后的权重向量等于所述当前权重向量加所述迭代步长;

更新单元,用于若所述当前权重向量对应所述逻辑回归函数的第一函数值减去所述迭代后的权重向量对应所述逻辑回归函数的第二函数值大于第一预设值,则将所述迭代后的权重向量作为所述当前权重向量。

结合第二方面,在第五种可能的实现方式中,所述计算模块还包括:

置信区间调整单元,用于若所述第一函数值减去所述第二函数值大于第二预设值,则增大所述迭代步长对应的置信区间;若所述第一函数值减去所述第二函数值小于第二预设值,则减小所述迭代步长对应的置信区间。

第三方面,本发明提供一种大数据并行计算装置,包括:总线、以及连接到总线的处理器和存储器;

所述存储器用于存储指令;

所述处理器用于执行所述存储器中存储的指令以执行以下步骤,依据数据集大小、集群内存大小和并行度对数据集进行分块,获得由多个数据分块构成的分块数据集;将所述分块数据集作为逻辑回归分类算法的训练数据集,求解逻辑回归函数的最优权重向量以获得逻辑回归分类器。

结合第三方面,在第一种可能的实现方式中,所述数据集是原始数据集经过解析获得的数据集;

所述处理器具体用于执行以下步骤,依据所述数据集大小确定所述分块数据集占用所述集群内存的比例;依据所述分块数据集占用所述集群内存的比例确定所述集群的剩余内存大小;依据所述剩余内存大小和所述并行度确定所述数据分块的大小。

结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述数据分块的大小partition满足公式(1):

其中,mem表示所述集群内存大小,memoryFraction表示所述分块数据集大小与所述集群内存大小的比值,parallelism表示所述并行度,mem×(1-memoryFraction)表示所述剩余内存大小。

结合第三方面,在第三种可能的实现方式中,所述处理器还用于执行以下步骤,若mem×(1-memoryFraction)大于或等于所述数据集大小的3倍,则减小所述并行度;依据所述集群中计算节点的资源信息为所述计算节点分配所述数据分块,所述资源信息至少包括:内存大小、计算性能和等待执行任务数。

结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理器还用于执行以下步骤,将所述分块数据集作为所述逻辑回归分类算法的训练数据集,计算所述逻辑回归函数在当前权重向量的梯度;若所述梯度不为0,则计算所述当前权重向量的迭代步长,并获得迭代后的权重向量,所述迭代后的权重向量等于所述当前权重向量加所述迭代步长;若所述当前权重向量对应所述逻辑回归函数的第一函数值减去所述迭代后的权重向量对应所述逻辑回归函数的第二函数值大于第一预设值,则将所述迭代后的权重向量作为所述当前权重向量。

结合第三方面,在第五种可能的实现方式中,所述处理器还用于执行以下步骤,若所述第一函数值减去所述第二函数值大于第二预设值,则增大所述迭代步长对应的置信区间;若所述第一函数值减去所述第二函数值小于第二预设值,则减小所述迭代步长对应的置信区间。本发明实施例提供的大数据并行计算方法及装置,依据数据集大小、集群内存大小和并行度对数据集进行分块,即对大数据进行分块时充分考虑计算资源,该计算资源决定数据分块大小,使各计算节点在处理数据分块时充分利用计算资源,提高对数据分块的处理效率,并提高大数据的并行计算性能。

附图说明

图1为本发明实施例提供的大数据并行计算方法流程图;

图2为本发明实施例提供的大数据分块方法流程图;

图3为本发明另一实施例提供的求解逻辑回归函数的方法流程图;

图4为本发明另一实施例提供的求解迭代步长的函数示意图;

图5为本发明实施例提供的大数据并行计算装置的结构图;

图6为本发明另一实施例提供的大数据并行计算装置的结构图;

图7为本发明另一实施例提供的大数据并行计算装置的结构图;

图8为本发明另一实施例提供的大数据并行计算装置的结构图。

具体实施方式

图1为本发明实施例提供的大数据并行计算方法流程图;图2为本发明实施例提供的大数据分块方法流程图。本发明实施例针对大数据进行并行处理,将大数据作为原始数据集解析成计算机能够识别的数据集,将数据集划分成由多个数据分块构成的分块数据集,通过将分块数据集作为逻辑回归分类算法的训练数据集,通过求解逻辑回归函数的最优权重向量以获得逻辑回归分类器,具体的大数据并行计算方法步骤如下:

步骤S101、依据数据集大小、集群内存大小和并行度对数据集进行分块,获得由多个数据分块构成的分块数据集;

所述数据集是原始数据集经过解析获得的数据集;所述依据数据集大小、集群内存大小和并行度对数据集进行分块包括:依据所述数据集大小确定所述分块数据集占用所述集群内存的比例;依据所述分块数据集占用所述集群内存的比例确定所述集群的剩余内存大小;依据所述剩余内存大小和所述并行度确定所述数据分块的大小。

将待处理的大数据作为原始数据集转换为计算机能够识别的数据集,该数据集是二维数据,包括数据记录以及该数据记录的维度,依据数据集的数据记录数、每个数据记录的维度以及二维数据的数据类型计算数据集大小,根据数据集大小预估计对数据集进行分块后获得的分块数据集的大小,由于分块数据集还包括分块信息,所以在计算机存储中,分块数据集的大小要大于未分块的数据集大小,在本发明实施例中,该分块数据集为弹性分布式数据集(Resilient Distributed Datasets,简称RDD)。

所述数据分块的大小partition满足公式(1):

其中,mem表示所述集群内存大小,memoryFraction表示所述分块数据集大小与所述集群内存大小的比值,parallelism表示所述并行度,mem×(1-memoryFraction)表示所述剩余内存大小。

确定数据分块大小的方法具体为:用mem表示集群内存大小,memoryFraction表示集群内存中用于缓存RDD的内存比例,则mem×(1-memoryFraction)表示集群内存的剩余内存大小,该剩余内存将被用于程序运行以及存储中间计算结果,若用partition表示RDD的每个数据分块大小,parallelism表示并行度,则所述数据分块的大小partition满足公式(1):

步骤S102、将所述分块数据集作为逻辑回归分类算法的训练数据集,求解逻辑回归函数的最优权重向量以获得逻辑回归分类器。

将步骤S101获得的数据分块分配给多个计算节点,以使多个计算节点并行计算数据分块,求解逻辑回归函数的权重向量,并判断该权重向量是否为最优权重向量,若否,则将该权重向量作为当前权重向量,在当前置信区间内计算当前权重向量的迭代步长,依据迭代步长更新当前权重向量,继续判断当前权重向量是否为最优权重向量,直到获得最优权重向量。

本发明实施例依据数据集大小、集群内存大小和并行度对数据集进行分块,即对大数据进行分块时充分考虑计算资源,该计算资源决定数据分块大小,使各计算节点在处理数据分块时充分利用计算资源,提高对数据分块的处理效率,并提高大数据的并行计算性能。

在上述实施例的基础上,还包括:若mem×(1-memoryFraction)大于或等于所述数据集大小的3倍,则减小所述并行度;依据所述集群中计算节点的资源信息为所述计算节点分配所述数据分块,所述资源信息至少包括:内存大小、计算性能和等待执行任务数。

上述实施例确定的数据分块大小还可根据实际的计算资源进一步调整,例如,当集群内存的剩余内存大小mem×(1-memoryFraction)大于或等于数据集大小的3倍时,表明集群内存用于程序运行以及存储中间计算结果的内存较大,则间接表明集群内空闲的计算资源较多,则减小并行度,通过公式(1)增大数据分块大小。

另外,依据计算节点的资源信息为该计算节点分配数据分块,由于各计算节点的内存大小不同、计算性能不同、等待执行任务数不同,所以为各计算节点分配不同数量的数据分块,具体的分配策略不限于如下:

1)为内存较大、计算性能较好的计算节点分配较多的数据分块,为内存较小、计算性能较差的计算节点分配较少的数据分块;

2)为等待执行任务数较多的计算节点分配较少的数据分块,为等待执行任务数较少的计算节点分配较多的数据分块。

如图2所示,对数据集进行分块的步骤具体如下:

步骤S21、依据数据集的数据记录数、每个数据记录的维度以及数据类型大小确定数据集的大小;

步骤S21与图1对应的实施例方法一致,此处不再赘述。

步骤S22、获取各计算节点的资源信息;

获取各计算节点的资源信息,该资源信息包括CPU参数信息(CPU个数、每个CPU的核数和每个CPU占用率)、内存大小、等待运行的任务数、正在执行的任务数、任务完成时间(即任务将在多长时间内完成)、节点计算能力。

步骤S23、读取预设的集群并行度;

每个CPU的每个核执行一个任务,预先设定对数据集进行并行处理的任务数。

步骤S24、根据数据集大小、各计算节点的资源信息和并行度计算每个数据分块的大小;

步骤S24与图1对应的实施例方法一致,此处不再赘述。

步骤S25、依据分块数据集大小和每个数据分块的大小确定数据分块个数;

将分块数据集大小除以每个数据分块的大小便可获得分块数据集包括的数据分块个数。

步骤S26、分配数据分块计算任务到计算节点。

将数据分块分配到多个计算节点,多个计算节点并行处理数据分块,具体的分配策略具体如上述分配策略1)和2)。

本发明实施例提供了根据实际的计算资源进一步调整数据分块大小的方法,以及为计算节点分配数据分块的分配策略,进一步提高了对计算资源的利用率。

图3为本发明另一实施例提供的求解逻辑回归函数的方法流程图;图4为本发明另一实施例提供的求解迭代步长的函数示意图。在上述实施例的基础上,所述将所述分块数据集作为逻辑回归分类算法的训练数据集,求解逻辑回归函数的最优权重向量以获得逻辑回归分类器的步骤具体如下:

步骤S300、将大数据读入内存并进行智能分块;

步骤S301、并行计算逻辑回归函数的梯度;

将所述分块数据集作为所述逻辑回归分类算法的训练数据集,计算所述逻辑回归函数在当前权重向量的梯度;

本发明实施例中逻辑回归函数其中,w表示权重向量,X={x1,x2,...xm}表示数据集,该数据集包含m条n维数据,wT表示w的转置向量,m维的列向量y表示类标向量,y的第i个分量记为yi表示第i条数据所属的类,C和b均为常数。

通过上述实施例将数据集X={x1,x2,...xm}进行分块获得分块数据集其中,Bi,j,0≤i≤J,0≤j≤K为数据分块,每个数据分块也是一个二维矩阵。

如图4所示,假设逻辑回归函数的当前权重向量为b0、b1…bK分别为二维矩阵的数据分块,对求梯度获得的梯度函数为具体求所述逻辑回归函数在当前权重向量wk的梯度涉及到如公式(2)所示的训练数据集X(矩阵)和当前权重向量wk(向量)的乘积运算:

计算公式(2)的具体过程如下:

步骤1、并行计算B0,0*b0=c0,0、B0,1*b1=c0,1…B0,K*bK=c0,K

并行计算B1,0*b0=c1,0、B1,1*b1=c1,1…B1,K*bK=c1,K

并行计算BJ,0*b0=cJ,0、BJ,1*b1=cJ,1…BJ,K*bK=cJ,K

步骤2、将c0,0、c0,1…c0,K进行对应位置元素相加获得向量块c0,将c1,0、c1,1…c1,K进行对应位置元素相加获得向量块c1…将cJ,0、cJ,1…cJ,K进行对应位置元素相加获得向量块cJ

步骤3、将c0、c1…cJ组成向量

步骤S302、判断当前权重向量是否为最优权重向量,是则执行步骤S303,否则执行步骤S304;

根据步骤S301计算获得的判断是否为0,若则当前权重向量wk已经是逻辑回归函数的最优解w*,执行步骤S303;若则为了求得逻辑回归函数的最优解w*,还需计算当前权重向量wk的迭代步长s*,执行步骤S304。

步骤S303、输出最优权重向量,算法结束。

步骤S304、在当前置信区间中,并行计算当前迭代步长;

若所述梯度不为0,则计算所述当前权重向量的迭代步长,并获得迭代后的权重向量,所述迭代后的权重向量等于所述当前权重向量加所述迭代步长;

本发明实施例通过双层并行方法求得每一轮迭代的迭代步长,如图4所示,将J(w+s)-J(w)在s处进行泰勒展开获得二阶近似函数q(s),对J(w)求二阶导得到海森(Hessian)矩阵表示为其中,X为训练数据集,I为单位矩阵,D为对角矩阵,且D的对角线元素为即的计算涉及到了矩阵与矩阵的乘积。由于s*是通过内层算法迭代得到的,在内层算法迭代初始时,参数初始化如下:d0=r0,在内层算法迭代过程中,第i步的迭代为:这里ri和di的迭代公式不再赘述,由迭代得到的最优值即为s*,在迭代过程中||αi||计算的分母有涉及到如公式(3)所示的矩阵与矩阵的乘积:

对公式(3)的求解过程类似于公式(2)的求解过程,此处不再赘述。通过上述求解获得的最优解s*作为逻辑回归函数J(w)的迭代步长,在海森(Hessian)矩阵正定的条件下,能够保证J(wk+s*)相比于J(wk)是下降的,wk+s*为迭代后的权重向量。

步骤S305、更新当前权重向量;

若所述当前权重向量对应所述逻辑回归函数的第一函数值减去所述迭代后的权重向量对应所述逻辑回归函数的第二函数值大于第一预设值,则将所述迭代后的权重向量作为所述当前权重向量;

判断J(wk)-J(wk+s*)是否大于第一预设值常数m,即判断迭代后的权重向量wk+s*相比当前权重向量wk,逻辑回归函数J(w)是否有足够的下降,若是则将wk+s*作为当前权重向量,否则不更新当前权重向量wk

步骤S306、更新当前置信区间,并返回步骤S301。

若所述第一函数值减去所述第二函数值大于第二预设值,则增大所述迭代步长对应的置信区间;若所述第一函数值减去所述第二函数值小于第二预设值,则减小所述迭代步长对应的置信区间。

如图4所示,置信区间Δk能够保证通过内层算法获得一个合理的迭代步长s*,目的是为了避免迭代步长s*选取过大导致算法出现“之”振荡,或者由于步长选取过小而出现算法收敛过慢,因此,置信区间Δk需要适当调整,置信区间Δk按照如下的方式更新:

Δk+1∈[σ1min{||sk||,Δk},σ2Δk] ifρk≤η1

Δk+1∈[σ1Δk,σ3Δk] ifρk∈(η1,η2)

Δk+1∈[Δk,σ3Δk] ifρk≥η2

其中,Δk+1为更新后的置信区间,常数σ1<σ2<1<σ3,常数η1<η2<1,

本发明实施例优选η1=0.25,η2=0.75,σ1=0.25,σ2=0.5,σ3=4.0。

重复计算所述逻辑回归函数在所述当前权重向量的梯度,直到所述梯度为0时获得所述最优权重向量,从而得到逻辑回归分类器。

将wk+s*作为当前权重向量后,重复步骤S301计算逻辑回归函数在所述当前权重向量的梯度若则在调整后的置信区间内再次计算wk+s*的迭代步长,以及后续步骤,直至找到最优权重向量w*;若则wk+s*是最优权重向量w*

本发明实施例将依据数据集大小、集群内存大小和并行度对数据集进行分块获得的分块数据集作为逻辑回归分类算法的训练数据集,通过求解逻辑回归函数的最优权重向量以获得逻辑回归分类器,实现了对大数据并行、高效地进行训练以及分类预测,且能够对高维特征值、高稀疏性数据进行训练和分类预测,提高了分类器的训练性能以及分类预测精度。

图5为本发明实施例提供的大数据并行计算装置的结构图。本发明实施例提供的大数据并行计算装置可以执行大数据并行计算方法实施例提供的处理流程,如图5所示,大数据并行计算装置50包括分块模块51和计算模块52,其中,分块模块51用于依据数据集大小、集群内存大小和并行度对数据集进行分块,获得由多个数据分块构成的分块数据集;计算模块52用于将所述分块数据集作为逻辑回归分类算法的训练数据集,求解逻辑回归函数的最优权重向量以获得逻辑回归分类器。

本发明实施例依据数据集大小、集群内存大小和并行度对数据集进行分块,即对大数据进行分块时充分考虑计算资源,该计算资源决定数据分块大小,使各计算节点在处理数据分块时充分利用计算资源,提高对数据分块的处理效率,并提高大数据的并行计算性能。

图6为本发明另一实施例提供的大数据并行计算装置的结构图。在图5的基础上,所述数据集是原始数据集经过解析获得的数据集;

分块模块51具体用于依据所述数据集大小确定所述分块数据集占用所述集群内存的比例;依据所述分块数据集占用所述集群内存的比例确定所述集群的剩余内存大小;依据所述剩余内存大小和所述并行度确定所述数据分块的大小。

所述数据分块的大小partition满足公式(1):

其中,mem表示所述集群内存大小,memoryFraction表示所述分块数据集大小与所述集群内存大小的比值,parallelism表示所述并行度,mem×(1-memoryFraction)表示所述剩余内存大小。

大数据并行计算装置50还包括调整模块53和分配模块54,其中,调整模块53用于若mem×(1-memoryFraction)大于或等于所述数据集大小的3倍,则减小所述并行度;分配模块54用于依据所述集群中计算节点的资源信息为所述计算节点分配所述数据分块,所述资源信息至少包括:内存大小、计算性能和等待执行任务数。

本发明实施例提供的大数据并行计算装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。

本发明实施例提供了根据实际的计算资源进一步调整数据分块大小的方法,以及为计算节点分配数据分块的分配策略,进一步提高了对计算资源的利用率。

图7为本发明另一实施例提供的大数据并行计算装置的结构图。在图6的基础上,计算模块52包括梯度计算单元521、迭代步长计算单元522和更新单元523,其中,梯度计算单元521用于将所述分块数据集作为所述逻辑回归分类算法的训练数据集,计算所述逻辑回归函数在当前权重向量的梯度;迭代步长计算单元522用于若所述梯度不为0,则计算所述当前权重向量的迭代步长,并获得迭代后的权重向量,所述迭代后的权重向量等于所述当前权重向量加所述迭代步长;更新单元523用于若所述当前权重向量对应所述逻辑回归函数的第一函数值减去所述迭代后的权重向量对应所述逻辑回归函数的第二函数值大于第一预设值,则将所述迭代后的权重向量作为所述当前权重向量。

计算模块52还包括置信区间调整单元524,置信区间调整单元524用于若所述第一函数值减去所述第二函数值大于第二预设值,则增大所述迭代步长对应的置信区间;若所述第一函数值减去所述第二函数值小于第二预设值,则减小所述迭代步长对应的置信区间。

本发明实施例提供的大数据并行计算装置可以具体用于执行上述图1所提供的方法实施例,具体功能此处不再赘述。

本发明实施例将依据数据集大小、集群内存大小和并行度对数据集进行分块获得的分块数据集作为逻辑回归分类算法的训练数据集,通过求解逻辑回归函数的最优权重向量以获得逻辑回归分类器,实现了对大数据并行、高效地训练和分类预测,且能够对高维特征值、高稀疏性数据进行训练和分类预测,提高了分类器的训练性能以及分类预测精度。

图8为本发明另一实施例提供的大数据并行计算装置的结构图。本发明实施例提供一种大数据并行计算装置,可以执行大数据并行计算方法实施例提供的处理流程,如图8所示,大数据并行计算装置50包括总线82,以及连接到总线82的处理器83和存储器84,其中,存储器84用于存储指令;处理器83用于执行存储器84中存储的指令以执行以下步骤,依据数据集大小、集群内存大小和并行度对数据集进行分块,获得由多个数据分块构成的分块数据集;将所述分块数据集作为逻辑回归分类算法的训练数据集,求解逻辑回归函数的最优权重向量以获得逻辑回归分类器。

在本发明实施例中,可选地,所述数据集是原始数据集经过解析获得的数据集;处理器83具体用于执行以下步骤,依据所述数据集大小确定所述分块数据集占用所述集群内存的比例;依据所述分块数据集占用所述集群内存的比例确定所述集群的剩余内存大小;依据所述剩余内存大小和所述并行度确定所述数据分块的大小。

在本发明实施例中,可选地,所述数据分块的大小partition满足公式(1):

其中,mem表示所述集群内存大小,memoryFraction表示所述分块数据集大小与所述集群内存大小的比值,parallelism表示所述并行度,mem×(1-memoryFraction)表示所述剩余内存大小。

在本发明实施例中,可选地,处理器83还用于执行以下步骤,若mem×(1-memoryFraction)大于或等于所述数据集大小的3倍,则减小所述并行度;依据所述集群中计算节点的资源信息为所述计算节点分配所述数据分块,所述资源信息至少包括:内存大小、计算性能和等待执行任务数。

在本发明实施例中,可选地,处理器83还用于执行以下步骤,将所述分块数据集作为所述逻辑回归分类算法的训练数据集,计算所述逻辑回归函数在当前权重向量的梯度;若所述梯度不为0,则计算所述当前权重向量的迭代步长,并获得迭代后的权重向量,所述迭代后的权重向量等于所述当前权重向量加所述迭代步长;若所述当前权重向量对应所述逻辑回归函数的第一函数值减去所述迭代后的权重向量对应所述逻辑回归函数的第二函数值大于第一预设值,则将所述迭代后的权重向量作为所述当前权重向量。

在本发明实施例中,可选地,处理器83还用于执行以下步骤,若所述第一函数值减去所述第二函数值大于第二预设值,则增大所述迭代步长对应的置信区间;若所述第一函数值减去所述第二函数值小于第二预设值,则减小所述迭代步长对应的置信区间。

本发明实施例将依据数据集大小、集群内存大小和并行度对数据集进行分块获得的分块数据集作为逻辑回归分类算法的训练数据集,通过求解逻辑回归函数的最优权重向量以获得逻辑回归分类器,实现了对大数据并行、高效地训练和分类预测,且能够对高维特征值、高稀疏性数据进行训练和分类预测,提高了分类器的训练性能以及分类预测精度。

综上所述,本发明实施例依据数据集大小、集群内存大小和并行度对数据集进行分块,即对大数据进行分块时充分考虑计算资源,该计算资源决定数据分块大小,使各计算节点在处理数据分块时充分利用计算资源,提高对数据分块的处理效率,并提高大数据的并行计算性能;提供了根据实际的计算资源进一步调整数据分块大小的方法,以及为计算节点分配数据分块的分配策略,进一步提高了对计算资源的利用率;将依据数据集大小、集群内存大小和并行度对数据集进行分块获得的分块数据集作为逻辑回归分类算法的训练数据集,通过求解逻辑回归函数的最优权重向量以获得逻辑回归分类器,实现了对大数据并行、高效地训练以及分类预测,且能够对高维特征值、高稀疏性数据进行训练和分类预测,提高了分类器的训练性能以及分类预测精度。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1