CN115660078A - 一种分布式计算方法、系统、存储介质和电子设备 - Google Patents
一种分布式计算方法、系统、存储介质和电子设备 Download PDFInfo
- Publication number
- CN115660078A CN115660078A CN202211701753.6A CN202211701753A CN115660078A CN 115660078 A CN115660078 A CN 115660078A CN 202211701753 A CN202211701753 A CN 202211701753A CN 115660078 A CN115660078 A CN 115660078A
- Authority
- CN
- China
- Prior art keywords
- training
- distributed computing
- task
- computing
- cache
- 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.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种分布式计算方法、系统、存储介质和电子设备,涉及分布式计算领域,包括:获取分布式计算任务;将分布式计算任务进行任务分解,得到子任务,并分配至各个计算节点;在每个计算节点中,利用训练线程训练子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;完成一次迭代后,交换第一缓存和第二缓存中的数据;在下一次迭代时,将当前全局数据作为下一次训练的初始值;迭代预设次数后得到计算节点对应的局部解;聚合各局部解,得到分布式计算任务的训练结果。本申请可以使得各计算节点训练得到的局部解更精确,还可以减少计算节点处理子任务的时间开销,提高分布式计算效率。
Description
技术领域
本申请涉及分布式计算领域,特别涉及一种分布式计算方法、系统、存储介质和电子设备。
背景技术
目前,现有基于分布式深度学习模型训练节点间通信方法大致可以分为基于多线程方法、基于线程池方法、事件驱动技术、以及远程过程调用方法。
但上述方法均存在算法逻辑复杂且计算量大使得算法性能受限的问题。深度学习问题的有效解决方案通常依赖于大数据集和大模型的支撑。然而,已有研究已经证明低效的通信方式训练神经网络模型至少花费数周的时间,因而对于时间敏感型任务场景难以适用。
因此,如何提高分布式计算效率是本领域技术人员亟需解决的技术问题。
发明内容
本申请的目的是提供一种分布式计算方法、系统、存储介质和电子设备,能够有效降低计算节点之间的通信开销,提高计算节点间的通信效率,从而提高分布式计算的整体效率。
为解决上述技术问题,本申请提供一种分布式计算方法,具体技术方案包括:
获取分布式计算任务;
将所述分布式计算任务进行任务分解,得到子任务,并将所述子任务分配至各个计算节点;
在每个计算节点中,利用训练线程训练所述子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;所述训练线程和所述通信线程均完成一次迭代后,交换所述第一缓存和所述第二缓存中的数据;在下一次迭代时,将所述当前全局数据作为所述训练线程下一次训练的初始值;所述训练结果用于作为所述计算节点本次迭代的中间数据;直至迭代预设次数后得到计算节点对应的局部解;
聚合各所述局部解,得到所述分布式计算任务的训练结果。
可选的,将所述分布式计算任务进行任务分解,得到子任务包括:
将所述分布式计算任务进行数据分解,得到子数据任务。
可选的,将所述分布式计算任务进行任务分解,得到子任务包括:
将所述分布式计算任务进行模型分解,得到子模型任务。
可选的,将所述分布式计算任务进行数据分解,得到子数据任务包括:
将所述分布式计算任务进行数据与模型的并行分解,得到子计算任务。
可选的,利用训练线程训练所述子任务得到训练结果并存至第一缓存包括:
利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存。
可选的,若所述优化算法为梯度优化算法,则所述利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存包括:
在所述训练线程中利用一阶优化算法或高阶优化算法训练所述子任务得到训练结果并存至第一缓存。
可选的,若所述子任务包含不可求导函数或偏导数,所述利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存包括:
在所述训练线程中利用非梯度类优化算法训练所述子任务得到训练结果并存至第一缓存。
可选的,利用训练线程训练所述子任务得到训练结果并存至第一缓存时,还包括:
确定各所述计算节点的执行前向传播计算和反向传播计算的并行流水线;
按照所述并行流水线执行各所述计算节点的迭代计算;其中,所述并行流水线中各所述计算节点在同一时刻执行不同迭代计算过程。
可选的,所述确定各所述计算节点的执行前向传播计算和反向传播计算的并行流水线包括:
确定第一次迭代计算过程中的前向传播计算过程和反向传播计算过程;
在每个计算节点完成所述第一次迭代计算过程中的前向传播计算过程后,依次启动第二次迭代计算过程、第三次迭代计算过程和第四次迭代计算过程;其中,第一次迭代计算过程、第二次迭代计算过程、第三次迭代计算过程和第四次迭代计算过程之间计算执行优先级递减;
所述计算节点执行计算时,按照所述计算执行优先级判断自身是否存在迭代计算过程中的计算任务;
若是,执行所述计算任务;
若否,令所述计算节点闲置。
可选的,聚合各所述局部解,得到所述分布式计算任务的训练结果包括:
为各所述计算节点赋权,并根据所有各所述计算节点的权重值和对应的局部解求加权和,将所述加权和作为所述分布式计算任务的训练结果。
可选的,聚合各所述局部解,得到所述分布式计算任务的训练结果包括:
确定计算效率满足数量阈值的目标计算节点;
聚合所述目标计算节点的局部解得到所述分布式计算任务的训练结果。
可选的,聚合各所述局部解,得到所述分布式计算任务的训练结果包括:
利用深度神经网络模型聚合各所述局部解,得到所述分布式计算任务的训练结果。
本申请还提供一种分布式计算系统,包括:
获取模块,用于获取分布式计算任务;
分解模块,用于将所述分布式计算任务进行任务分解,得到子任务,并将所述子任务分配至各个计算节点;
训练模块,用于在每个计算节点中,利用训练线程训练所述子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;所述训练线程和所述通信线程均完成一次迭代后,交换所述第一缓存和所述第二缓存中的数据;并下一次迭代时,将所述当前全局数据作为所述训练线程下一次训练的初始值;所述训练结果用于作为所述计算节点本次迭代的中间数据;直至迭代预设次数后得到计算节点对应的局部解
数据聚合模块,用于聚合各所述局部解,得到所述分布式计算任务的训练结果。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
本申请还提供一种电子设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
本申请提供一种分布式计算方法,包括:获取分布式计算任务;将所述分布式计算任务进行任务分解,得到子任务,并将所述子任务分配至各个计算节点;在每个计算节点中,利用训练线程训练所述子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;所述训练线程和所述通信线程均完成一次迭代后,交换所述第一缓存和所述第二缓存中的数据;在下一次迭代时,将所述当前全局数据作为所述训练线程下一次训练的初始值;所述训练结果用于作为所述计算节点本次迭代的中间数据;直至迭代预设次数后得到计算节点对应的局部解;聚合各所述局部解,得到所述分布式计算任务的训练结果。
本申请获取到分布式计算任务后,先对分布式计算任务进行任务分解得到若干子任务,从而利用若干计算节点分配处理子任务。在计算节点处理子任务时,配置训练线程和通信线程,训练线程和通信线程可以并行执行各自的任务,以确保每次计算节点在即将执行下一迭代时,均可以采用当前全局数据,一方面可以使得各计算节点训练得到的局部解更精确,另一方面可以减少计算节点处理子任务的时间开销,从而提高分布式计算效率。
本申请还提供一种分布式计算系统、存储介质和电子设备,具有上述有益效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种分布式计算方法的流程图;
图2为本申请实施例所提供的一种计算节点处理子任务过程示意图;
图3为本申请实施例所提供的池化操作过程示意图;
图4为本申请提供的模型级并行流水优化结构示意图;
图5为当前深度神经网络训练迭代示意图;
图6为本申请提供的深度神经网络流水线并行迭代示意图;
图7为本申请实施例所提供的一种分布式计算系统结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种分布式计算方法的流程图,该方法包括:
S101:获取分布式计算任务;
S102:将所述分布式计算任务进行任务分解,得到子任务,并将所述子任务分配至各个计算节点;
本步骤旨在对分布式计算任务进行任务分解,以得到子任务。由于输入分布式计算任务对应的深度学习模型或者数据集的数据规模较为庞大,导致数据处理困难,因此,本步骤对分布式计算任务进行分解。
在此对于如何执行任务分解不作限定,本实施例在此对于几种分解方式,主要可以分为数据分解和模型分解两种。
对于数据分解,即从数据侧对分布式计算任务进行分解,数据并行依赖于在并行计算环境中多个处理器(计算节点)细分数据集实现分割计算。数据并行算法侧重于将数据分布在不同的并行计算节点上,并且各计算节点执行相同的计算模型。数据并行模式按照数据集不同的拆分策略分为基于样本的数据并行和基于样本维度的数据并行。基于样本的数据并行:假定分布式训练系统数据集包含m个数据样本和n个计算节点,将这m个样本通过有放回的随机采样与局部(全局)置乱采样两种方式分配至n个计算节点。基于样本维度的数据并行。若分布式计算任务对于数据集包含m个样本且每个样本具有d(d为正整数)维属性或特征,分布式训练系统包括n个计算节点。基于样本维度的数据并行则是从样本属性维度出发,将m个样本按照不同的属性进行拆分,并把拆分后的样本子集分配至相应的计算节点。
如果训练任务模型过大且无法通过单机方式实现存储,可以对模型进行有效拆分使得训练任务变得可行,即采用模型分解。模型并行将模型参数拆分成多个子模型,并且各个子模型分配至不同的计算节点。值得注意的是由于神经网络模型的特殊性,即神经网络模型的分层结构使得其在应用模型并行方面具有显著优势。神经网络模型按照不同的拆分方式可以分为水平拆分和垂直拆分。
此外,在某些场景下还可以同时使用模型分解与数据分解,由此产生了数据与模型的混合分解,即将分布式计算任务进行数据与模型的并行分解,得到子计算任务。一方面将数据集拆分,另一方将模型也进行拆分,使其能够应用于更复杂的模型训练任务中。
当然,本领域技术人员还可以采用其他分解方式,在此不一一举例限定。
S103:在每个计算节点中,利用训练线程训练所述子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;所述训练线程和所述通信线程均完成一次迭代后,交换所述第一缓存和所述第二缓存中的数据;在下一次迭代时,将所述当前全局数据作为所述训练线程下一次训练的初始值;所述训练结果用于作为所述计算节点本次迭代的中间数据;直至迭代预设次数后得到计算节点对应的局部解;
本步骤需要针对计算节点直接迭代计算的过程进行优化。分布式训练系统与传统单机训练的最主要差别在于利用多个计算节点间的协同合作加速完成训练任务,因此通信成为深度学习模型训练系统不可或缺的环节。然而,由于硬件设备、网络带宽和传输速率等因素的影响,分布式训练系统计算节点间的通信往往成为瓶颈,严重制约了训练性能。为此,本步骤在训练过程中,将一次选代计算过程分为计算和通信两个步骤。虽然相邻两次迭代之间存在依赖性,但可以利用分布式训练系统的容错性,将两次选代之间用流水线的方式并行结合。
计算节点每次迭代均为中间数据,仅在迭代预设次数后得到计算节点对应的局部解,在此对于预设次数不作限定,可以由本领域技术人员自行设定。
需要注意的是,第一缓存和第二缓存相互独立,通常可以为每个计算节点均配置第一缓存和第二缓存,且第一缓存与训练线程相对应,第二缓存与通信线程相对应。在计算节点训练过程中,基于第一缓存中的模型参数进行模型的更新。在训练的同时,由通信线程将上一轮训练线程产生的更新发送至分布式计算系统,并获取当前全局数据,也即最新的全局模型,包含在该计算节点前已经完成本次迭代得到模型更新的相应数据,从而保存在第二缓存。在通信线程和训练线程均完成一次迭代后,交换第一缓存和第二缓存中的数据,从而使得训练线程直接利用第二缓存中存储的当前全局数据进行下一次迭代,同时通信线程将计算节点训练线程本次迭代训练的本地更新发送至分布式计算系统中的参数服务器。在参数服务器中可以存储各计算节点每次迭代训练过程中产生的模型更新。可以看出,模型的训练更新以及计算节点之间的交互可以同步进行,从而减少了总体的时间开销,优化了训练性能。
此外,在此对于本步骤中各计算节点如何执行训练不做限定,在计算节点处理子任务的过程中,各计算节点实现局部训练的阶段,可以使用梯度类优化算法与非梯度类优化算法两大类:
梯度类优化算法,包括一阶优化算法和高阶优化算法。具体而言,一阶优化算法是指对目标函数进行求一阶导数或者偏导,并且利用该导数或偏导信息,用于梯度下降或上升的参数更新框架。一阶优化算法主要包括梯度下降(Gradient Descent, GD)、随机梯度下降(Stochastic Gradient Descent, SGD)、mini-batch随机梯度下降、投影次梯度方法(Projected Sub-gradient Method, PSG)等方法。一阶优化算法的优势在于算法逻辑简单,计算复杂度较低,易于实现扩展性。二阶优化算法是指对目标函数进行求二阶导数或偏导,并且利用该导数或偏导信息,用于梯度下降或上升的参数更新框架。二阶优化算法主要包括Newton方法、拟Newton方法等。相较于一阶优化算法而言,二阶优化算法利用了目标函数的高阶信息,因此可以加速算法收敛过程。但是,由于二阶矩阵应用于SGD框架中,实质是要求解一个海森矩阵的逆矩阵,其计算量过大。因此,研究人员需结合目标函数本身的特性,选用适当的优化算法。
非梯度类优化算法可以针对不可求导数或偏导数的目标函数,主要包括坐标下降方法(coordinate Descent Method, CDM)、原始对偶方法(Primal Dual Method)、次梯度优化算法等。
则在利用训练线程训练子任务得到训练结果并存至第一缓存时可以利用包含优化算法的训练线程训练子任务得到训练结果并存至第一缓存,也可以在训练线程中利用一阶优化算法或高阶优化算法训练子任务得到训练结果并存至第一缓存,还可以在训练线程中利用非梯度类优化算法训练子任务得到训练结果并存至第一缓存。
本步骤对于如何利用训练线程训练子任务得到训练结果不作限定。作为一种可行的执行方式,具体的,在每个计算节点上,其均包含卷积神经网络模型。该卷积神经网络模型包含输入层、卷积层、池化层、全连接层和输出层。其中,全连接层又包含FC1层和FC2层。
以子任务为图片数据为例,将图片数据输入至输入层,在卷积层中将数据表示成M*N的矩阵,矩阵中的每个元素表示图片的灰度信息数值。此后对图像灰度信息矩阵执行卷积操作。卷积操作是通过一个卷积核或者过滤器作为算子实现的,参见图2,图2为本申请实施例所提供的一种计算节点处理子任务过程示意图。图2中,左侧为原始灰度矩阵,中间为卷积核(filter kernel),右侧为卷积后矩阵。一种可行的实施方式中,选择图2中左上角的3*3矩阵(具体选择的大小可由本领域技术人员自行设定)与3*3的卷积核执行矩阵乘法运算,并将得到的结果作为右侧卷积后矩阵的第一个元素。此后,移动原始灰度矩阵,并逐一计算作为右侧卷积后矩阵中的元素,直至卷积后矩阵填满为止。
此后对卷积后的矩阵执行池化操作,参见图3,图3为本申请实施例所提供的池化操作过程示意图。先选定窗口,并将窗口内最大值作为池化值,从而得到包含若干池化值的小矩阵。以图3为例,图3左上角3×3矩阵中最大值为2,则将2作为小矩阵中左上角的第一个元素。
最后将池化后的矩阵输入全连接层的FC1层,并在全连接层中根据给定的初始参数矩阵和偏置矩阵计算目标函数值,完成前向传播。其中,全连接层目标函数形式为Y=WX+B,其中W表示初始化模型参数矩阵,X表示池化值矩阵、B表示偏置矩阵(常数)。根据给定的初始参数矩阵、偏置矩阵、以及处理后的池化值矩阵,可以求得目标函数Y。
同时,在FC2层,对目标函数值Y求梯度值,并将求得的梯度指返回FC1层,此后FC1层根据预设的更新公式完成对模型参数的更新过程,完成后向传播。在此对于具体的更新公式不作限定。
在经过FC1层和FC2层之间的若干次迭代训练后,目标函数值经过包含softmax 函数的Softmax层,将输入数据识别成某些类的概率输出。其中,softmax 函数用于计算图像被识别为某一类别的概率。如此,完成每个子任务的计算,得到对应的训练结果。
S104:聚合各所述局部解,得到所述分布式计算任务的训练结果。
在每个计算节点经过如步骤S103的迭代训练一定轮次后,即可得到每个计算节点对于其所分配的子任务的局部解。在此对于各计算节点需要迭代的次数不做限定,所有计算节点迭代次数可以相同,也可以根据所需要处理的子任务不同或者处理效率不同分别执行不同的迭代次数。
在此对于聚合局部解不作限定,可以包含基于加和的聚合以及基于集成的聚合。
若采用基于加和的聚合,可以包含全聚合,即为各计算节点赋权,并根据所有各计算节点的权重值和对应的局部解求加权和,将加权和作为分布式计算任务的训练结果。
也可以采用部分聚合,则只需确定计算效率满足数量阈值的目标计算节点,聚合目标计算节点的局部解得到分布式计算任务的训练结果。
若采用基于集成的聚合,可以聚合各局部解,可以直接利用深度神经网络模型聚合各局部解,得到分布式计算任务的训练结果。
本申请实施例获取到分布式计算任务后,先对分布式计算任务进行任务分解得到若干子任务,从而利用若干计算节点分配处理子任务。在计算节点处理子任务时,配置训练线程和通信线程,训练线程和通信线程可以并行执行各自的任务,以确保每次计算节点在即将执行下一迭代时,均可以采用当前全局数据,一方面可以使得各计算节点训练得到的局部解更精确,另一方面可以减少计算节点处理子任务的时间开销,从而提高分布式计算效率。
基于上述实施例,作为优选的实施例,在计算节点训练时,还可以此阿勇模型级流水线,具体过程如下包括:
确定各所述计算节点的执行前向传播计算和反向传播计算的并行流水线;
按照所述并行流水线执行各所述计算节点的迭代计算;其中,所述并行流水线中各所述计算节点在同一时刻执行不同迭代计算过程。
参见图4,图4为本申请提供的模型级并行流水优化结构示意图,在图4中,一个5层神经网络包括1个输入层,3个隐藏层以及1个输出层。依据模型划分规则,不妨令输入层分配至计算节点1,隐藏层1分配至计算节点2,隐藏层2分配至计算节点3,隐藏层3和输出层分配至计算节点4。
整个深度学习网络通过上述方式进行划分,划分后的各个部分之间存在相互依赖关系。例如,隐藏层2的输入与计算依赖于隐藏层1的输出。
深度学习模型训练迭代过程可以分为计算与传输两个过程,而计算过程主要包括前向传播(Forward work)计算和反向传播(Backward work)计算两个过程。那么,训练划分后的深度神经网络规则如下:(1)前向传播计算步骤:将输入层分配至计算节点1,该节点计算完成之后将其结果发送到计算节点2。以此类推,直到计算节点4;(2)反向传播计算步骤:计算节点4反向传播其梯度等信息至计算节点3,计算节点3同样反向传播其梯度信息至阶段节点2,以此类推,直到计算节点1处。每当执行完一次前向传播步骤与一次反向传播步骤,即完成一次完整的迭代,如图5所示,图5为当前深度神经网络训练迭代示意图。
显然,在图5中,横坐标表示时间轴,纵坐标表示计算节点序号,黑色方块部分表示前向传播计算步骤,白色方块部分表示反向传播计算步骤,斜线方块部分表示计算节点闲置。前向传播计算步骤与反向传播步骤部分的数字表示迭代序号。例如,按照时间先后顺序,在第一次迭代中,首先完成计算节点1至计算节点4的前向传播步骤,其次完成由计算节点4至计算节点1的反向传播步骤,之后进入第二次迭代过程。
通过上述工作方式,存在大量资源闲置。换言之,在任何时刻没有两个计算节点在同一时刻进行工作,即没有做到真正的并行计算,因而训练效率和计算性能未达到最优。考虑到上述问题,本申请实施例引入了并行流水线的概念提升深度学习模型训练的性能。并行流水线的核心思想是:如果同时进行多个迭代过程的计算,且每个计算节点在同一时刻负责不同迭代过程的计算,就可以避免迭代间的数据依赖,从而有效减少了大量的资源闲置,具体过程可以如图6所示,图6为本申请提供的深度神经网络流水线并行迭代示意图。
其具体执行过程可以如下:
S201:确定第一次迭代计算过程中的前向传播计算过程和反向传播计算过程;
S202:在每个计算节点完成所述第一次迭代计算过程中的前向传播计算过程后,依次启动第二次迭代计算过程、第三次迭代计算过程和第四次迭代计算过程;其中,第一次迭代计算过程、第二次迭代计算过程、第三次迭代计算过程和第四次迭代计算过程之间计算执行优先级递减;
S203:所述计算节点执行计算时,按照所述计算执行优先级判断自身是否存在迭代计算过程中的计算任务;若是,进入S204;若否,进入S205;
S204:执行所述计算任务;
S205:令所述计算节点闲置。
图6中,黑色方块部分表示前向传播计算步骤,白色方块部分表示反向传播计算步骤,斜线方块部分表示计算节点闲置,方块中的数字表示第几次迭代。如图6可以看出,计算节点在同一时刻可以执行不同迭代过程的计算,但并非在每一时刻均需要执行迭代计算,且在执行迭代计算过程中,优先保证最先执行的迭代过程中的前向传播计算和反向传播计算,例如对于计算节点4,在第五个时间点,由于需要反向传播计算,则只能在第六个时间点执行第二轮迭代的反向传播计算。
下面对本申请实施例提供的分布式计算系统进行介绍,下文描述的分布式计算系统与上文描述的分布式计算方法可相互对应参照。
参见图7,图7为本申请实施例所提供的一种分布式计算系统结构示意图,该系统包括:
获取模块,用于获取分布式计算任务;
分解模块,用于将所述分布式计算任务进行任务分解,得到子任务,并将所述子任务分配至各个计算节点;
训练模块,用于在每个计算节点中,利用训练线程训练所述子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;所述训练线程和所述通信线程均完成一次迭代后,交换所述第一缓存和所述第二缓存中的数据;并下一次迭代时,将所述当前全局数据作为所述训练线程下一次训练的初始值;所述训练结果用于作为所述计算节点本次迭代的中间数据;直至迭代预设次数后得到计算节点对应的局部解
数据聚合模块,用于聚合各所述局部解,得到所述分布式计算任务的训练结果。
基于上述实施例,作为优选的实施例,分解模块包括:
第一分解单元,用于将所述分布式计算任务进行数据分解,得到子数据任务。
基于上述实施例,作为优选的实施例,分解模块包括:
第二分解单元,用于将所述分布式计算任务进行模型分解,得到子模型任务。
基于上述实施例,作为优选的实施例,分解模块包括:
第三分解单元,用于将所述分布式计算任务进行数据与模型的并行分解,得到子计算任务。
基于上述实施例,作为优选的实施例,训练模块包括:
训练单元,用于利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存。
基于上述实施例,作为优选的实施例,若所述优化算法为梯度优化算法,则训练单元为用于在所述训练线程中利用一阶优化算法或高阶优化算法训练所述子任务得到训练结果并存至第一缓存的单元。
基于上述实施例,作为优选的实施例,若所述子任务包含不可求导函数或偏导数,则训练单元为用于在所述训练线程中利用非梯度类优化算法训练所述子任务得到训练结果并存至第一缓存的单元。
基于上述实施例,作为优选的实施例,还包括:
模型并行模块,用于确定各所述计算节点的执行前向传播计算和反向传播计算的并行流水线;按照所述并行流水线执行各所述计算节点的迭代计算;其中,所述并行流水线中各所述计算节点在同一时刻执行不同迭代计算过程。
基于上述实施例,作为优选的实施例,所述模型并行模块包括:
并行流水线确定单元,用于确定第一次迭代计算过程中的前向传播计算过程和反向传播计算过程;在每个计算节点完成所述第一次迭代计算过程中的前向传播计算过程后,依次启动第二次迭代计算过程、第三次迭代计算过程和第四次迭代计算过程;其中,第一次迭代计算过程、第二次迭代计算过程、第三次迭代计算过程和第四次迭代计算过程之间计算执行优先级递减;所述计算节点执行计算时,按照所述计算执行优先级判断自身是否存在迭代计算过程中的计算任务;若是,执行所述计算任务;若否,令所述计算节点闲置。
基于上述实施例,作为优选的实施例,数据聚合模块包括:
第一聚合单元,用于为各所述计算节点赋权,并根据所有各所述计算节点的权重值和对应的局部解求加权和,将所述加权和作为所述分布式计算任务的训练结果。
基于上述实施例,作为优选的实施例,数据聚合模块包括:
第二聚合单元,用于确定计算效率满足数量阈值的目标计算节点;聚合所述目标计算节点的局部解得到所述分布式计算任务的训练结果。
基于上述实施例,作为优选的实施例,数据聚合模块包括:
第三聚合单元,用于利用深度神经网络模型聚合各所述局部解,得到所述分布式计算任务的训练结果。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory ,ROM)、随机存取存储器(Random Access Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (15)
1.一种分布式计算方法,其特征在于,包括:
获取分布式计算任务;
将所述分布式计算任务进行任务分解,得到子任务,并将所述子任务分配至各个计算节点;
在每个计算节点中,利用训练线程训练所述子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;所述训练线程和所述通信线程均完成一次迭代后,交换所述第一缓存和所述第二缓存中的数据;在下一次迭代时,将所述当前全局数据作为所述训练线程下一次训练的初始值;所述训练结果用于作为所述计算节点本次迭代的中间数据;直至迭代预设次数后得到计算节点对应的局部解;
聚合各所述局部解,得到所述分布式计算任务的训练结果。
2.根据权利要求1所述的分布式计算方法,其特征在于,将所述分布式计算任务进行任务分解,得到子任务包括:
将所述分布式计算任务进行数据分解,得到子数据任务。
3.根据权利要求1所述的分布式计算方法,其特征在于,将所述分布式计算任务进行任务分解,得到子任务包括:
将所述分布式计算任务进行模型分解,得到子模型任务。
4.根据权利要求1所述的分布式计算方法,其特征在于,将所述分布式计算任务进行数据分解,得到子数据任务包括:
将所述分布式计算任务进行数据与模型的并行分解,得到子计算任务。
5.根据权利要求1-4任一项所述的分布式计算方法,其特征在于,利用训练线程训练所述子任务得到训练结果并存至第一缓存包括:
利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存。
6.根据权利要求5所述的分布式计算方法,其特征在于,若所述优化算法为梯度优化算法,则所述利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存包括:
在所述训练线程中利用一阶优化算法或高阶优化算法训练所述子任务得到训练结果并存至第一缓存。
7.根据权利要求5所述的分布式计算方法,其特征在于,若所述子任务包含不可求导函数或偏导数,所述利用包含优化算法的训练线程训练所述子任务得到训练结果并存至第一缓存包括:
在所述训练线程中利用非梯度类优化算法训练所述子任务得到训练结果并存至第一缓存。
8.根据权利要求1所述的分布式计算方法,其特征在于,利用训练线程训练所述子任务得到训练结果并存至第一缓存时,还包括:
确定各所述计算节点的执行前向传播计算和反向传播计算的并行流水线;
按照所述并行流水线执行各所述计算节点的迭代计算;其中,所述并行流水线中各所述计算节点在同一时刻执行不同迭代计算过程。
9.根据权利要求8所述的分布式计算方法,其特征在于,所述确定各所述计算节点的执行前向传播计算和反向传播计算的并行流水线包括:
确定第一次迭代计算过程中的前向传播计算过程和反向传播计算过程;
在每个计算节点完成所述第一次迭代计算过程中的前向传播计算过程后,依次启动第二次迭代计算过程、第三次迭代计算过程和第四次迭代计算过程;其中,第一次迭代计算过程、第二次迭代计算过程、第三次迭代计算过程和第四次迭代计算过程之间计算执行优先级递减;
所述计算节点执行计算时,按照所述计算执行优先级判断自身是否存在迭代计算过程中的计算任务;
若是,执行所述计算任务;
若否,令所述计算节点闲置。
10.根据权利要求1所述的分布式计算方法,其特征在于,聚合各所述局部解,得到所述分布式计算任务的训练结果包括:
为各所述计算节点赋权,并根据所有各所述计算节点的权重值和对应的局部解求加权和,将所述加权和作为所述分布式计算任务的训练结果。
11.根据权利要求1所述的分布式计算方法,其特征在于,聚合各所述局部解,得到所述分布式计算任务的训练结果包括:
确定计算效率满足数量阈值的目标计算节点;
聚合所述目标计算节点的局部解得到所述分布式计算任务的训练结果。
12.根据权利要求1所述的分布式计算方法,其特征在于,聚合各所述局部解,得到所述分布式计算任务的训练结果包括:
利用深度神经网络模型聚合各所述局部解,得到所述分布式计算任务的训练结果。
13.一种分布式计算系统,其特征在于,包括:
获取模块,用于获取分布式计算任务;
分解模块,用于将所述分布式计算任务进行任务分解,得到子任务,并将所述子任务分配至各个计算节点;
训练模块,用于在每个计算节点中,利用训练线程训练所述子任务得到训练结果并存至第一缓存,利用通信线程获取当前全局数据存储至第二缓存;所述训练线程和所述通信线程均完成一次迭代后,交换所述第一缓存和所述第二缓存中的数据;并下一次迭代时,将所述当前全局数据作为所述训练线程下一次训练的初始值;所述训练结果用于作为所述计算节点本次迭代的中间数据;直至迭代预设次数后得到计算节点对应的局部解
数据聚合模块,用于聚合各所述局部解,得到所述分布式计算任务的训练结果。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-12任一项所述的方法的步骤。
15.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1-12任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211701753.6A CN115660078A (zh) | 2022-12-29 | 2022-12-29 | 一种分布式计算方法、系统、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211701753.6A CN115660078A (zh) | 2022-12-29 | 2022-12-29 | 一种分布式计算方法、系统、存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115660078A true CN115660078A (zh) | 2023-01-31 |
Family
ID=85022704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211701753.6A Pending CN115660078A (zh) | 2022-12-29 | 2022-12-29 | 一种分布式计算方法、系统、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115660078A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116644803A (zh) * | 2023-07-27 | 2023-08-25 | 浪潮电子信息产业股份有限公司 | 分布式协同训练控制方法、系统、装置、设备及存储介质 |
CN116663639A (zh) * | 2023-07-31 | 2023-08-29 | 浪潮电子信息产业股份有限公司 | 一种梯度数据同步方法、系统、装置及介质 |
CN116681127A (zh) * | 2023-07-27 | 2023-09-01 | 山东海量信息技术研究院 | 一种神经网络模型训练方法、装置及电子设备和存储介质 |
CN116681973A (zh) * | 2023-08-03 | 2023-09-01 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
CN116704296A (zh) * | 2023-08-04 | 2023-09-05 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
CN117687801A (zh) * | 2024-02-02 | 2024-03-12 | 浪潮电子信息产业股份有限公司 | 一种跨域分布式计算系统、方法、存储介质和电子设备 |
CN117687801B (zh) * | 2024-02-02 | 2024-05-10 | 浪潮电子信息产业股份有限公司 | 一种跨域分布式计算系统、方法、存储介质和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190279088A1 (en) * | 2016-11-29 | 2019-09-12 | Huawei Technologies Co., Ltd. | Training method, apparatus, chip, and system for neural network model |
CN114756383A (zh) * | 2022-06-15 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种分布式计算方法、系统、设备及存储介质 |
CN114997337A (zh) * | 2022-07-18 | 2022-09-02 | 浪潮电子信息产业股份有限公司 | 信息融合、数据通信方法、装置及电子设备和存储介质 |
-
2022
- 2022-12-29 CN CN202211701753.6A patent/CN115660078A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190279088A1 (en) * | 2016-11-29 | 2019-09-12 | Huawei Technologies Co., Ltd. | Training method, apparatus, chip, and system for neural network model |
CN114756383A (zh) * | 2022-06-15 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种分布式计算方法、系统、设备及存储介质 |
CN114997337A (zh) * | 2022-07-18 | 2022-09-02 | 浪潮电子信息产业股份有限公司 | 信息融合、数据通信方法、装置及电子设备和存储介质 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116644803A (zh) * | 2023-07-27 | 2023-08-25 | 浪潮电子信息产业股份有限公司 | 分布式协同训练控制方法、系统、装置、设备及存储介质 |
CN116681127A (zh) * | 2023-07-27 | 2023-09-01 | 山东海量信息技术研究院 | 一种神经网络模型训练方法、装置及电子设备和存储介质 |
CN116644803B (zh) * | 2023-07-27 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 分布式协同训练控制方法、系统、装置、设备及存储介质 |
CN116681127B (zh) * | 2023-07-27 | 2023-11-07 | 山东海量信息技术研究院 | 一种神经网络模型训练方法、装置及电子设备和存储介质 |
CN116663639A (zh) * | 2023-07-31 | 2023-08-29 | 浪潮电子信息产业股份有限公司 | 一种梯度数据同步方法、系统、装置及介质 |
CN116663639B (zh) * | 2023-07-31 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 一种梯度数据同步方法、系统、装置及介质 |
CN116681973A (zh) * | 2023-08-03 | 2023-09-01 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
CN116681973B (zh) * | 2023-08-03 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
CN116704296A (zh) * | 2023-08-04 | 2023-09-05 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
CN116704296B (zh) * | 2023-08-04 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 一种图像处理方法、装置、系统、设备及计算机存储介质 |
CN117687801A (zh) * | 2024-02-02 | 2024-03-12 | 浪潮电子信息产业股份有限公司 | 一种跨域分布式计算系统、方法、存储介质和电子设备 |
CN117687801B (zh) * | 2024-02-02 | 2024-05-10 | 浪潮电子信息产业股份有限公司 | 一种跨域分布式计算系统、方法、存储介质和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115660078A (zh) | 一种分布式计算方法、系统、存储介质和电子设备 | |
Wang et al. | Integer-ordered simulation optimization using R-SPLINE: Retrospective search with piecewise-linear interpolation and neighborhood enumeration | |
US20130339972A1 (en) | Determining an allocation of resources to a program having concurrent jobs | |
US10509683B2 (en) | Modeling resource usage for a job | |
CN115186821B (zh) | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 | |
CN113994350A (zh) | 为神经网络生成并行计算方案 | |
Xiao et al. | A cooperative coevolution hyper-heuristic framework for workflow scheduling problem | |
US20210304066A1 (en) | Partitioning for an execution pipeline | |
CN108108233B (zh) | 任务多副本执行的集群作业调度方法及系统 | |
CN109657794B (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
Nascimento et al. | A reinforcement learning scheduling strategy for parallel cloud-based workflows | |
CN115033391A (zh) | 一种用于神经网络计算的数据流动方法和装置 | |
Maiti et al. | Scheduling precedence-constrained jobs on related machines with communication delay | |
Salado et al. | A research on measuring and reducing problem complexity to increase system affordability: From theory to practice | |
Nasr et al. | Task scheduling algorithm for high performance heterogeneous distributed computing systems | |
CN112632615B (zh) | 基于混合云环境的科学工作流数据布局方法 | |
US9858112B2 (en) | Sparse threaded deterministic lock-free cholesky and LDLT factorizations | |
CN108599173B (zh) | 一种批量潮流的求解方法及装置 | |
CN113238873A (zh) | 一种用于航天器资源优化配置的方法 | |
CN112800425A (zh) | 一种基于图计算的代码分析的方法和装置 | |
Aida et al. | Performance enhancement of scheduling algorithm in heterogeneous distributed computing systems | |
CN115658975B (zh) | 用于实现负载均衡的图数据划分方法 | |
Kail et al. | A novel adaptive checkpointing method based on information obtained from workflow structure | |
Ivanov et al. | Management of computations with LRnLA algorithms in adaptive mesh refinement codes | |
CN112965797B (zh) | 一种Kubernetes环境下面向复杂任务的组合优先级调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |